From 441212200a3a087841eaaee01a4e9d12d31a0b56 Mon Sep 17 00:00:00 2001 From: colin <102356659+colinlyguo@users.noreply.github.com> Date: Sat, 28 Oct 2023 06:29:31 +0800 Subject: [PATCH] feat(rollup): sync finalized batches from L1 (#515) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(rollup): sync finalized batches from L1 * tweak * address comments * address comments * tweak * address comments * Update rollup/eventwatcher/eventwatcher.go Co-authored-by: Péter Garamvölgyi * address comments * address comments * address comments * add s.rollupSyncService.Stop() * add block chunk batch tests * fix goimports-lint * address comments * address comments * remove * add TestUnpackLog test * add decodeChunkRanges tests * add commit batch version check * fix goimport & golint * tweak * fixes * add TestRollupSyncServiceStartAndStop * add TestGetChunkRanges * address comments * add TestValidateBatch * add TestCalculateFinalizedBatchMeta * address comments * address comments * fix * address comments * address comments * fix * tweak log * fix * tweak logs * increase wait time * add --rollup.verify flag * add flag check in s.rollupSyncService.Stop() * bump version * refactor * tweak configs * tweak * refactor getLocalInfoForBatch * use syscall.Kill(os.Getpid(), syscall.SIGTERM) to shutdown * refactor decodeChunkBlockRanges * nit * address comments * address comments * add WithdrawRoot and StateRoot in FinalizedBatchMeta * address comments * address comments * add ctx.Err() check in retry * add configs in gen_config.go * bump version * fix goimport & golint * try to fix goimport * revert change * fix goimport & golint * tweak * bump version * add l2 block -> batch index mapping * bump version * add mainnet config * bump version * address comments * rename some vars * feat: add more detailed logs in crash case (#547) add more detailed logs in crash case * trigger ci * re-add batch finalization progress log * remove block number -> batch index mapping --------- Co-authored-by: Péter Garamvölgyi Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> --- cmd/geth/main.go | 1 + cmd/utils/flags.go | 13 + core/rawdb/accessors_rollup_event.go | 146 + core/rawdb/accessors_rollup_event_test.go | 186 + core/rawdb/schema.go | 16 + eth/backend.go | 14 + eth/ethconfig/config.go | 3 + eth/ethconfig/gen_config.go | 6 + go.mod | 12 +- go.sum | 19 +- params/config.go | 18 +- params/version.go | 4 +- rollup/rollup_sync_service/abi.go | 55 + rollup/rollup_sync_service/abi_test.go | 82 + rollup/rollup_sync_service/batch_header.go | 123 + rollup/rollup_sync_service/block.go | 167 + rollup/rollup_sync_service/chunk.go | 155 + rollup/rollup_sync_service/l1client.go | 92 + rollup/rollup_sync_service/l1client_test.go | 70 + .../rollup_sync_service.go | 420 + .../rollup_sync_service_test.go | 207 + .../testdata/blockTrace_02.json | 591 + .../testdata/blockTrace_03.json | 12879 ++++++++++++++++ .../testdata/blockTrace_04.json | 870 ++ .../testdata/blockTrace_05.json | 3713 +++++ .../testdata/commit_batch_transaction.json | 3 + .../testdata/commit_batch_tx.rlp | Bin 0 -> 88636 bytes rollup/sync_service/types.go | 2 + 28 files changed, 19845 insertions(+), 22 deletions(-) create mode 100644 core/rawdb/accessors_rollup_event.go create mode 100644 core/rawdb/accessors_rollup_event_test.go create mode 100644 rollup/rollup_sync_service/abi.go create mode 100644 rollup/rollup_sync_service/abi_test.go create mode 100644 rollup/rollup_sync_service/batch_header.go create mode 100644 rollup/rollup_sync_service/block.go create mode 100644 rollup/rollup_sync_service/chunk.go create mode 100644 rollup/rollup_sync_service/l1client.go create mode 100644 rollup/rollup_sync_service/l1client_test.go create mode 100644 rollup/rollup_sync_service/rollup_sync_service.go create mode 100644 rollup/rollup_sync_service/rollup_sync_service_test.go create mode 100644 rollup/rollup_sync_service/testdata/blockTrace_02.json create mode 100644 rollup/rollup_sync_service/testdata/blockTrace_03.json create mode 100644 rollup/rollup_sync_service/testdata/blockTrace_04.json create mode 100644 rollup/rollup_sync_service/testdata/blockTrace_05.json create mode 100644 rollup/rollup_sync_service/testdata/commit_batch_transaction.json create mode 100644 rollup/rollup_sync_service/testdata/commit_batch_tx.rlp diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 636e724661db..d4280144e49b 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -165,6 +165,7 @@ var ( utils.L1ConfirmationsFlag, utils.L1DeploymentBlockFlag, utils.CircuitCapacityCheckEnabledFlag, + utils.RollupVerifyEnabledFlag, } rpcFlags = []cli.Flag{ diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 36ccd3040303..c6c360268c5d 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -836,6 +836,12 @@ var ( Usage: "Enable circuit capacity check during block validation", } + // Rollup verify service settings + RollupVerifyEnabledFlag = cli.BoolFlag{ + Name: "rollup.verify", + Usage: "Enable verification of batch consistency between L1 and L2 in rollup", + } + // Max block range for `eth_getLogs` method MaxBlockRangeFlag = cli.Int64Flag{ Name: "rpc.getlogs.maxrange", @@ -1546,6 +1552,12 @@ func setCircuitCapacityCheck(ctx *cli.Context, cfg *ethconfig.Config) { } } +func setEnableRollupVerify(ctx *cli.Context, cfg *ethconfig.Config) { + if ctx.GlobalIsSet(RollupVerifyEnabledFlag.Name) { + cfg.EnableRollupVerify = ctx.GlobalBool(RollupVerifyEnabledFlag.Name) + } +} + func setMaxBlockRange(ctx *cli.Context, cfg *ethconfig.Config) { if ctx.GlobalIsSet(MaxBlockRangeFlag.Name) { cfg.MaxBlockRange = ctx.GlobalInt64(MaxBlockRangeFlag.Name) @@ -1620,6 +1632,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) { setWhitelist(ctx, cfg) setLes(ctx, cfg) setCircuitCapacityCheck(ctx, cfg) + setEnableRollupVerify(ctx, cfg) setMaxBlockRange(ctx, cfg) // Cap the cache allowance and tune the garbage collector diff --git a/core/rawdb/accessors_rollup_event.go b/core/rawdb/accessors_rollup_event.go new file mode 100644 index 000000000000..a3575df44a1c --- /dev/null +++ b/core/rawdb/accessors_rollup_event.go @@ -0,0 +1,146 @@ +package rawdb + +import ( + "bytes" + "math/big" + + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/ethdb" + "github.com/scroll-tech/go-ethereum/log" + "github.com/scroll-tech/go-ethereum/rlp" +) + +// ChunkBlockRange represents the range of blocks within a chunk. +type ChunkBlockRange struct { + StartBlockNumber uint64 + EndBlockNumber uint64 +} + +// FinalizedBatchMeta holds metadata for finalized batches. +type FinalizedBatchMeta struct { + BatchHash common.Hash + TotalL1MessagePopped uint64 // total number of L1 messages popped before and in this batch. + StateRoot common.Hash + WithdrawRoot common.Hash +} + +// WriteRollupEventSyncedL1BlockNumber stores the latest synced L1 block number related to rollup events in the database. +func WriteRollupEventSyncedL1BlockNumber(db ethdb.KeyValueWriter, l1BlockNumber uint64) { + value := big.NewInt(0).SetUint64(l1BlockNumber).Bytes() + if err := db.Put(rollupEventSyncedL1BlockNumberKey, value); err != nil { + log.Crit("failed to store rollup event synced L1 block number for rollup event", "err", err) + } +} + +// ReadRollupEventSyncedL1BlockNumber fetches the highest synced L1 block number associated with rollup events from the database. +func ReadRollupEventSyncedL1BlockNumber(db ethdb.Reader) *uint64 { + data, err := db.Get(rollupEventSyncedL1BlockNumberKey) + if err != nil && isNotFoundErr(err) { + return nil + } + if err != nil { + log.Crit("failed to read rollup event synced L1 block number from database", "err", err) + } + + number := new(big.Int).SetBytes(data) + if !number.IsUint64() { + log.Crit("unexpected rollup event synced L1 block number in database", "number", number) + } + + rollupEventSyncedL1BlockNumber := number.Uint64() + return &rollupEventSyncedL1BlockNumber +} + +// WriteBatchChunkRanges writes the block ranges for each chunk within a batch to the database. +// It serializes the chunk ranges using RLP and stores them under a key derived from the batch index. +func WriteBatchChunkRanges(db ethdb.KeyValueWriter, batchIndex uint64, chunkBlockRanges []*ChunkBlockRange) { + bytes, err := rlp.EncodeToBytes(chunkBlockRanges) + if err != nil { + log.Crit("failed to RLP encode batch chunk ranges", "batch index", batchIndex, "err", err) + } + if err := db.Put(batchChunkRangesKey(batchIndex), bytes); err != nil { + log.Crit("failed to store batch chunk ranges", "batch index", batchIndex, "err", err) + } +} + +// DeleteBatchChunkRanges removes the block ranges of all chunks associated with a specific batch from the database. +// Note: Only non-finalized batches can be reverted. +func DeleteBatchChunkRanges(db ethdb.KeyValueWriter, batchIndex uint64) { + if err := db.Delete(batchChunkRangesKey(batchIndex)); err != nil { + log.Crit("failed to delete batch chunk ranges", "batch index", batchIndex, "err", err) + } +} + +// ReadBatchChunkRanges retrieves the block ranges of all chunks associated with a specific batch from the database. +// It returns a list of ChunkBlockRange pointers, or nil if no chunk ranges are found for the given batch index. +func ReadBatchChunkRanges(db ethdb.Reader, batchIndex uint64) []*ChunkBlockRange { + data, err := db.Get(batchChunkRangesKey(batchIndex)) + if err != nil && isNotFoundErr(err) { + return nil + } + if err != nil { + log.Crit("failed to read batch chunk ranges from database", "err", err) + } + + cr := new([]*ChunkBlockRange) + if err := rlp.Decode(bytes.NewReader(data), cr); err != nil { + log.Crit("Invalid ChunkBlockRange RLP", "batch index", batchIndex, "data", data, "err", err) + } + return *cr +} + +// WriteFinalizedBatchMeta stores the metadata of a finalized batch in the database. +func WriteFinalizedBatchMeta(db ethdb.KeyValueWriter, batchIndex uint64, finalizedBatchMeta *FinalizedBatchMeta) { + var err error + bytes, err := rlp.EncodeToBytes(finalizedBatchMeta) + if err != nil { + log.Crit("failed to RLP encode batch metadata", "batch index", batchIndex, "err", err) + } + if err := db.Put(batchMetaKey(batchIndex), bytes); err != nil { + log.Crit("failed to store batch metadata", "batch index", batchIndex, "err", err) + } +} + +// ReadFinalizedBatchMeta fetches the metadata of a finalized batch from the database. +func ReadFinalizedBatchMeta(db ethdb.Reader, batchIndex uint64) *FinalizedBatchMeta { + data, err := db.Get(batchMetaKey(batchIndex)) + if err != nil && isNotFoundErr(err) { + return nil + } + if err != nil { + log.Crit("failed to read finalized batch metadata from database", "err", err) + } + + fbm := new(FinalizedBatchMeta) + if err := rlp.Decode(bytes.NewReader(data), fbm); err != nil { + log.Crit("Invalid FinalizedBatchMeta RLP", "batch index", batchIndex, "data", data, "err", err) + } + return fbm +} + +// WriteFinalizedL2BlockNumber stores the highest finalized L2 block number in the database. +func WriteFinalizedL2BlockNumber(db ethdb.KeyValueWriter, l2BlockNumber uint64) { + value := big.NewInt(0).SetUint64(l2BlockNumber).Bytes() + if err := db.Put(finalizedL2BlockNumberKey, value); err != nil { + log.Crit("failed to store finalized L2 block number for rollup event", "err", err) + } +} + +// ReadFinalizedL2BlockNumber fetches the highest finalized L2 block number from the database. +func ReadFinalizedL2BlockNumber(db ethdb.Reader) *uint64 { + data, err := db.Get(finalizedL2BlockNumberKey) + if err != nil && isNotFoundErr(err) { + return nil + } + if err != nil { + log.Crit("failed to read finalized L2 block number from database", "err", err) + } + + number := new(big.Int).SetBytes(data) + if !number.IsUint64() { + log.Crit("unexpected finalized L2 block number in database", "number", number) + } + + finalizedL2BlockNumber := number.Uint64() + return &finalizedL2BlockNumber +} diff --git a/core/rawdb/accessors_rollup_event_test.go b/core/rawdb/accessors_rollup_event_test.go new file mode 100644 index 000000000000..861b4523522a --- /dev/null +++ b/core/rawdb/accessors_rollup_event_test.go @@ -0,0 +1,186 @@ +package rawdb + +import ( + "testing" + + "github.com/scroll-tech/go-ethereum/common" +) + +func TestWriteRollupEventSyncedL1BlockNumber(t *testing.T) { + blockNumbers := []uint64{ + 1, + 1 << 2, + 1 << 8, + 1 << 16, + 1 << 32, + } + + db := NewMemoryDatabase() + + // read non-existing value + if got := ReadRollupEventSyncedL1BlockNumber(db); got != nil { + t.Fatal("Expected 0 for non-existing value", "got", *got) + } + + for _, num := range blockNumbers { + WriteRollupEventSyncedL1BlockNumber(db, num) + got := ReadRollupEventSyncedL1BlockNumber(db) + + if *got != num { + t.Fatal("Block number mismatch", "expected", num, "got", got) + } + } +} + +func TestFinalizedL2BlockNumber(t *testing.T) { + blockNumbers := []uint64{ + 1, + 1 << 2, + 1 << 8, + 1 << 16, + 1 << 32, + } + + db := NewMemoryDatabase() + + // read non-existing value + if got := ReadFinalizedL2BlockNumber(db); got != nil { + t.Fatal("Expected 0 for non-existing value", "got", *got) + } + + for _, num := range blockNumbers { + WriteFinalizedL2BlockNumber(db, num) + got := ReadFinalizedL2BlockNumber(db) + + if *got != num { + t.Fatal("Block number mismatch", "expected", num, "got", got) + } + } +} + +func TestFinalizedBatchMeta(t *testing.T) { + batches := []*FinalizedBatchMeta{ + { + BatchHash: common.BytesToHash([]byte("batch1")), + TotalL1MessagePopped: 123, + StateRoot: common.BytesToHash([]byte("stateRoot1")), + WithdrawRoot: common.BytesToHash([]byte("withdrawRoot1")), + }, + { + BatchHash: common.BytesToHash([]byte("batch2")), + TotalL1MessagePopped: 456, + StateRoot: common.BytesToHash([]byte("stateRoot2")), + WithdrawRoot: common.BytesToHash([]byte("withdrawRoot2")), + }, + { + BatchHash: common.BytesToHash([]byte("batch3")), + TotalL1MessagePopped: 789, + StateRoot: common.BytesToHash([]byte("stateRoot3")), + WithdrawRoot: common.BytesToHash([]byte("withdrawRoot3")), + }, + } + + db := NewMemoryDatabase() + + for i, batch := range batches { + batchIndex := uint64(i) + WriteFinalizedBatchMeta(db, batchIndex, batch) + } + + for i, batch := range batches { + batchIndex := uint64(i) + readBatch := ReadFinalizedBatchMeta(db, batchIndex) + if readBatch == nil { + t.Fatal("Failed to read batch from database") + } + if readBatch.BatchHash != batch.BatchHash || readBatch.TotalL1MessagePopped != batch.TotalL1MessagePopped || + readBatch.StateRoot != batch.StateRoot || readBatch.WithdrawRoot != batch.WithdrawRoot { + t.Fatal("Mismatch in read batch", "expected", batch, "got", readBatch) + } + } + + // over-write + newBatch := &FinalizedBatchMeta{ + BatchHash: common.BytesToHash([]byte("newBatch")), + TotalL1MessagePopped: 999, + StateRoot: common.BytesToHash([]byte("newStateRoot")), + WithdrawRoot: common.BytesToHash([]byte("newWithdrawRoot")), + } + WriteFinalizedBatchMeta(db, 0, newBatch) // over-writing the batch with index 0 + readBatch := ReadFinalizedBatchMeta(db, 0) + if readBatch.BatchHash != newBatch.BatchHash || readBatch.TotalL1MessagePopped != newBatch.TotalL1MessagePopped || + readBatch.StateRoot != newBatch.StateRoot || readBatch.WithdrawRoot != newBatch.WithdrawRoot { + t.Fatal("Mismatch after over-writing batch", "expected", newBatch, "got", readBatch) + } + + // read non-existing value + nonExistingIndex := uint64(len(batches) + 1) + readBatch = ReadFinalizedBatchMeta(db, nonExistingIndex) + if readBatch != nil { + t.Fatal("Expected nil for non-existing value", "got", readBatch) + } +} + +func TestBatchChunkRanges(t *testing.T) { + chunks := [][]*ChunkBlockRange{ + { + {StartBlockNumber: 1, EndBlockNumber: 100}, + {StartBlockNumber: 101, EndBlockNumber: 200}, + }, + { + {StartBlockNumber: 201, EndBlockNumber: 300}, + {StartBlockNumber: 301, EndBlockNumber: 400}, + }, + { + {StartBlockNumber: 401, EndBlockNumber: 500}, + }, + } + + db := NewMemoryDatabase() + + for i, chunkRange := range chunks { + batchIndex := uint64(i) + WriteBatchChunkRanges(db, batchIndex, chunkRange) + } + + for i, chunkRange := range chunks { + batchIndex := uint64(i) + readChunkRange := ReadBatchChunkRanges(db, batchIndex) + if len(readChunkRange) != len(chunkRange) { + t.Fatal("Mismatch in number of chunk ranges", "expected", len(chunkRange), "got", len(readChunkRange)) + } + + for j, cr := range readChunkRange { + if cr.StartBlockNumber != chunkRange[j].StartBlockNumber || cr.EndBlockNumber != chunkRange[j].EndBlockNumber { + t.Fatal("Mismatch in chunk range", "batch index", batchIndex, "expected", chunkRange[j], "got", cr) + } + } + } + + // over-write + newRange := []*ChunkBlockRange{{StartBlockNumber: 1001, EndBlockNumber: 1100}} + WriteBatchChunkRanges(db, 0, newRange) + readChunkRange := ReadBatchChunkRanges(db, 0) + if len(readChunkRange) != 1 || readChunkRange[0].StartBlockNumber != 1001 || readChunkRange[0].EndBlockNumber != 1100 { + t.Fatal("Over-write failed for chunk range", "expected", newRange, "got", readChunkRange) + } + + // read non-existing value + if readChunkRange = ReadBatchChunkRanges(db, uint64(len(chunks)+1)); readChunkRange != nil { + t.Fatal("Expected nil for non-existing value", "got", readChunkRange) + } + + // delete: revert batch + for i := range chunks { + batchIndex := uint64(i) + DeleteBatchChunkRanges(db, batchIndex) + + readChunkRange := ReadBatchChunkRanges(db, batchIndex) + if readChunkRange != nil { + t.Fatal("Chunk range was not deleted", "batch index", batchIndex) + } + } + + // delete non-existing value: ensure the delete operation handles non-existing values without errors. + DeleteBatchChunkRanges(db, uint64(len(chunks)+1)) +} diff --git a/core/rawdb/schema.go b/core/rawdb/schema.go index 9d659975e82e..f5f82cb2cafb 100644 --- a/core/rawdb/schema.go +++ b/core/rawdb/schema.go @@ -110,6 +110,12 @@ var ( firstQueueIndexNotInL2BlockPrefix = []byte("q") // firstQueueIndexNotInL2BlockPrefix + L2 block hash -> enqueue index highestSyncedQueueIndexKey = []byte("HighestSyncedQueueIndex") + // Scroll rollup event store + rollupEventSyncedL1BlockNumberKey = []byte("R-LastRollupEventSyncedL1BlockNumber") + batchChunkRangesPrefix = []byte("R-bcr") + batchMetaPrefix = []byte("R-bm") + finalizedL2BlockNumberKey = []byte("R-finalized") + // Row consumption rowConsumptionPrefix = []byte("rc") // rowConsumptionPrefix + hash -> row consumption by block @@ -292,3 +298,13 @@ func SkippedTransactionKey(txHash common.Hash) []byte { func SkippedTransactionHashKey(index uint64) []byte { return append(skippedTransactionHashPrefix, encodeBigEndian(index)...) } + +// batchChunkRangesKey = batchChunkRangesPrefix + batch index (uint64 big endian) +func batchChunkRangesKey(batchIndex uint64) []byte { + return append(batchChunkRangesPrefix, encodeBigEndian(batchIndex)...) +} + +// batchMetaKey = batchMetaPrefix + batch index (uint64 big endian) +func batchMetaKey(batchIndex uint64) []byte { + return append(batchMetaPrefix, encodeBigEndian(batchIndex)...) +} diff --git a/eth/backend.go b/eth/backend.go index e5d4c33f0ba8..28ca1ccc1bac 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -55,6 +55,7 @@ import ( "github.com/scroll-tech/go-ethereum/p2p/enode" "github.com/scroll-tech/go-ethereum/params" "github.com/scroll-tech/go-ethereum/rlp" + "github.com/scroll-tech/go-ethereum/rollup/rollup_sync_service" "github.com/scroll-tech/go-ethereum/rollup/sync_service" "github.com/scroll-tech/go-ethereum/rpc" ) @@ -70,6 +71,7 @@ type Ethereum struct { // Handlers txPool *core.TxPool syncService *sync_service.SyncService + rollupSyncService *rollup_sync_service.RollupSyncService blockchain *core.BlockChain handler *handler ethDialCandidates enode.Iterator @@ -216,6 +218,15 @@ func New(stack *node.Node, config *ethconfig.Config, l1Client sync_service.EthCl } eth.syncService.Start() + if config.EnableRollupVerify { + // initialize and start rollup event sync service + eth.rollupSyncService, err = rollup_sync_service.NewRollupSyncService(context.Background(), chainConfig, eth.chainDb, l1Client, eth.blockchain, stack.Config().L1DeploymentBlock) + if err != nil { + return nil, fmt.Errorf("cannot initialize rollup event sync service: %w", err) + } + eth.rollupSyncService.Start() + } + // Permit the downloader to use the trie cache allowance during fast sync cacheLimit := cacheConfig.TrieCleanLimit + cacheConfig.TrieDirtyLimit + cacheConfig.SnapshotLimit checkpoint := config.Checkpoint @@ -572,6 +583,9 @@ func (s *Ethereum) Stop() error { close(s.closeBloomHandler) s.txPool.Stop() s.syncService.Stop() + if s.config.EnableRollupVerify { + s.rollupSyncService.Stop() + } s.miner.Close() s.blockchain.Stop() s.engine.Close() diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index 40b62c8d4b09..42ba8739d871 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -212,6 +212,9 @@ type Config struct { // Check circuit capacity in block validator CheckCircuitCapacity bool + // Enable verification of batch consistency between L1 and L2 in rollup + EnableRollupVerify bool + // Max block range for eth_getLogs api method MaxBlockRange int64 } diff --git a/eth/ethconfig/gen_config.go b/eth/ethconfig/gen_config.go index 24b755eb687a..debe7715d469 100644 --- a/eth/ethconfig/gen_config.go +++ b/eth/ethconfig/gen_config.go @@ -62,6 +62,7 @@ func (c Config) MarshalTOML() (interface{}, error) { OverrideArrowGlacier *big.Int `toml:",omitempty"` MPTWitness int CheckCircuitCapacity bool + EnableRollupVerify bool MaxBlockRange int64 } var enc Config @@ -109,6 +110,7 @@ func (c Config) MarshalTOML() (interface{}, error) { enc.OverrideArrowGlacier = c.OverrideArrowGlacier enc.MPTWitness = c.MPTWitness enc.CheckCircuitCapacity = c.CheckCircuitCapacity + enc.EnableRollupVerify = c.EnableRollupVerify enc.MaxBlockRange = c.MaxBlockRange return &enc, nil } @@ -160,6 +162,7 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { OverrideArrowGlacier *big.Int `toml:",omitempty"` MPTWitness *int CheckCircuitCapacity *bool + EnableRollupVerify *bool MaxBlockRange *int64 } var dec Config @@ -298,6 +301,9 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { if dec.CheckCircuitCapacity != nil { c.CheckCircuitCapacity = *dec.CheckCircuitCapacity } + if dec.EnableRollupVerify != nil { + c.EnableRollupVerify = *dec.EnableRollupVerify + } if dec.MaxBlockRange != nil { c.MaxBlockRange = *dec.MaxBlockRange } diff --git a/go.mod b/go.mod index 4ecc115856d6..28d60c7e4e32 100644 --- a/go.mod +++ b/go.mod @@ -54,10 +54,10 @@ require ( github.com/stretchr/testify v1.8.2 github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef - golang.org/x/crypto v0.6.0 - golang.org/x/sync v0.1.0 - golang.org/x/sys v0.5.0 - golang.org/x/text v0.7.0 + golang.org/x/crypto v0.14.0 + golang.org/x/sync v0.4.0 + golang.org/x/sys v0.13.0 + golang.org/x/text v0.13.0 golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6 @@ -91,8 +91,8 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/tklauser/go-sysconf v0.3.10 // indirect github.com/tklauser/numcpus v0.4.0 // indirect - golang.org/x/net v0.6.0 // indirect - golang.org/x/term v0.5.0 // indirect + golang.org/x/net v0.16.0 // indirect + golang.org/x/term v0.13.0 // indirect google.golang.org/protobuf v1.23.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index e85236131d70..f37efab7e0a5 100644 --- a/go.sum +++ b/go.sum @@ -442,8 +442,9 @@ golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -497,8 +498,9 @@ golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.16.0 h1:7eBu7KsSvFDtSXUIDbh3aqlK4DPsZ1rByC8PFfBThos= +golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -513,8 +515,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -555,13 +557,15 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.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= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -570,8 +574,9 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/params/config.go b/params/config.go index 5f18328e4240..bce481a8cbef 100644 --- a/params/config.go +++ b/params/config.go @@ -294,6 +294,7 @@ var ( L1ChainId: 5, L1MessageQueueAddress: common.HexToAddress("0x79DB48002Aa861C8cb189cabc21c6B1468BC83BB"), NumL1MessagesPerBlock: 0, + ScrollChainAddress: common.HexToAddress("0x3C584eC7f0f2764CC715ac3180Ae9828465E9833"), }, }, } @@ -331,6 +332,7 @@ var ( L1ChainId: 11155111, L1MessageQueueAddress: common.HexToAddress("0xF0B2293F5D834eAe920c6974D50957A1732de763"), NumL1MessagesPerBlock: 10, + ScrollChainAddress: common.HexToAddress("0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0"), }, }, } @@ -368,6 +370,7 @@ var ( L1ChainId: 1, L1MessageQueueAddress: common.HexToAddress("0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B"), NumL1MessagesPerBlock: 10, + ScrollChainAddress: common.HexToAddress("0xa13BAF47339d63B743e7Da8741db5456DAc1E556"), }, }, } @@ -385,7 +388,7 @@ var ( EnableEIP1559: true, MaxTxPerBlock: nil, MaxTxPayloadBytesPerBlock: nil, - L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0}, + L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0, common.HexToAddress("0x0000000000000000000000000000000000000000")}, }} // AllCliqueProtocolChanges contains every protocol change (EIPs) introduced @@ -401,7 +404,7 @@ var ( EnableEIP1559: true, MaxTxPerBlock: nil, MaxTxPayloadBytesPerBlock: nil, - L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0}, + L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0, common.HexToAddress("0x0000000000000000000000000000000000000000")}, }} TestChainConfig = &ChainConfig{big.NewInt(1), big.NewInt(0), nil, false, big.NewInt(0), common.Hash{}, big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), big.NewInt(0), nil, nil, new(EthashConfig), nil, @@ -412,7 +415,7 @@ var ( EnableEIP1559: true, MaxTxPerBlock: nil, MaxTxPayloadBytesPerBlock: nil, - L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0}, + L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0, common.HexToAddress("0x0000000000000000000000000000000000000000")}, }} TestRules = TestChainConfig.Rules(new(big.Int)) @@ -424,7 +427,7 @@ var ( EnableEIP1559: true, MaxTxPerBlock: nil, MaxTxPayloadBytesPerBlock: nil, - L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0}, + L1Config: &L1Config{5, common.HexToAddress("0x0000000000000000000000000000000000000000"), 0, common.HexToAddress("0x0000000000000000000000000000000000000000")}, }} ) @@ -542,11 +545,12 @@ type ScrollConfig struct { L1Config *L1Config `json:"l1Config,omitempty"` } -// L1Config contains the l1 parameters needed to collect l1 messages in the sequencer +// L1Config contains the l1 parameters needed to sync l1 contract events (e.g., l1 messages, commit/revert/finalize batches) in the sequencer type L1Config struct { L1ChainId uint64 `json:"l1ChainId,string,omitempty"` L1MessageQueueAddress common.Address `json:"l1MessageQueueAddress,omitempty"` NumL1MessagesPerBlock uint64 `json:"numL1MessagesPerBlock,string,omitempty"` + ScrollChainAddress common.Address `json:"scrollChainAddress,omitempty"` } func (c *L1Config) String() string { @@ -554,8 +558,8 @@ func (c *L1Config) String() string { return "" } - return fmt.Sprintf("{l1ChainId: %v, l1MessageQueueAddress: %v, numL1MessagesPerBlock: %v}", - c.L1ChainId, c.L1MessageQueueAddress, c.NumL1MessagesPerBlock) + return fmt.Sprintf("{l1ChainId: %v, l1MessageQueueAddress: %v, numL1MessagesPerBlock: %v, ScrollChainAddress: %v}", + c.L1ChainId, c.L1MessageQueueAddress.Hex(), c.NumL1MessagesPerBlock, c.ScrollChainAddress.Hex()) } func (s ScrollConfig) BaseFeeEnabled() bool { diff --git a/params/version.go b/params/version.go index e2ccd4c31f66..224a381a4e7f 100644 --- a/params/version.go +++ b/params/version.go @@ -23,8 +23,8 @@ import ( const ( VersionMajor = 5 // Major version component of the current release - VersionMinor = 0 // Minor version component of the current release - VersionPatch = 3 // Patch version component of the current release + VersionMinor = 1 // Minor version component of the current release + VersionPatch = 0 // Patch version component of the current release VersionMeta = "mainnet" // Version metadata to append to the version string ) diff --git a/rollup/rollup_sync_service/abi.go b/rollup/rollup_sync_service/abi.go new file mode 100644 index 000000000000..0252ecd02fdb --- /dev/null +++ b/rollup/rollup_sync_service/abi.go @@ -0,0 +1,55 @@ +package rollup_sync_service + +import ( + "fmt" + "math/big" + + "github.com/scroll-tech/go-ethereum/accounts/abi" + "github.com/scroll-tech/go-ethereum/accounts/abi/bind" + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/types" +) + +// scrollChainMetaData contains ABI of the ScrollChain contract. +var scrollChainMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_chainId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"CommitBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawRoot\",\"type\":\"bytes32\"}],\"name\":\"FinalizeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHash\",\"type\":\"bytes32\"}],\"name\":\"RevertBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxNumTxInChunk\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxNumTxInChunk\",\"type\":\"uint256\"}],\"name\":\"UpdateMaxNumTxInChunk\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateProver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"UpdateSequencer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"UpdateVerifier\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addProver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_version\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_parentBatchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"_chunks\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"_skippedL1MessageBitmap\",\"type\":\"bytes\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"committedBatches\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_prevStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_postStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_withdrawRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_aggrProof\",\"type\":\"bytes\"}],\"name\":\"finalizeBatchWithProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"finalizedStateRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_stateRoot\",\"type\":\"bytes32\"}],\"name\":\"importGenesisBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_messageQueue\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_maxNumTxInChunk\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"isBatchFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isProver\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSequencer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastFinalizedBatchIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"layer2ChainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxNumTxInChunk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageQueue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeProver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_batchHeader\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"revertBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxNumTxInChunk\",\"type\":\"uint256\"}],\"name\":\"updateMaxNumTxInChunk\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newVerifier\",\"type\":\"address\"}],\"name\":\"updateVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdrawRoots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", +} + +// L1CommitBatchEvent represents a CommitBatch event raised by the ScrollChain contract. +type L1CommitBatchEvent struct { + BatchIndex *big.Int + BatchHash common.Hash +} + +// L1RevertBatchEvent represents a RevertBatch event raised by the ScrollChain contract. +type L1RevertBatchEvent struct { + BatchIndex *big.Int + BatchHash common.Hash +} + +// L1FinalizeBatchEvent represents a FinalizeBatch event raised by the ScrollChain contract. +type L1FinalizeBatchEvent struct { + BatchIndex *big.Int + BatchHash common.Hash + StateRoot common.Hash + WithdrawRoot common.Hash +} + +// UnpackLog unpacks a retrieved log into the provided output structure. +func UnpackLog(c *abi.ABI, out interface{}, event string, log types.Log) error { + if log.Topics[0] != c.Events[event].ID { + return fmt.Errorf("event signature mismatch") + } + if len(log.Data) > 0 { + if err := c.UnpackIntoInterface(out, event, log.Data); err != nil { + return err + } + } + var indexed abi.Arguments + for _, arg := range c.Events[event].Inputs { + if arg.Indexed { + indexed = append(indexed, arg) + } + } + return abi.ParseTopics(out, indexed, log.Topics[1:]) +} diff --git a/rollup/rollup_sync_service/abi_test.go b/rollup/rollup_sync_service/abi_test.go new file mode 100644 index 000000000000..d47a2c72e190 --- /dev/null +++ b/rollup/rollup_sync_service/abi_test.go @@ -0,0 +1,82 @@ +package rollup_sync_service + +import ( + "math/big" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/crypto" +) + +func TestEventSignatures(t *testing.T) { + scrollChainABI, err := scrollChainMetaData.GetAbi() + if err != nil { + t.Fatal("failed to get scroll chain abi", "err", err) + } + + assert.Equal(t, crypto.Keccak256Hash([]byte("CommitBatch(uint256,bytes32)")), scrollChainABI.Events["CommitBatch"].ID) + assert.Equal(t, crypto.Keccak256Hash([]byte("RevertBatch(uint256,bytes32)")), scrollChainABI.Events["RevertBatch"].ID) + assert.Equal(t, crypto.Keccak256Hash([]byte("FinalizeBatch(uint256,bytes32,bytes32,bytes32)")), scrollChainABI.Events["FinalizeBatch"].ID) +} + +func TestUnpackLog(t *testing.T) { + scrollChainABI, err := scrollChainMetaData.GetAbi() + require.NoError(t, err) + + mockBatchIndex := big.NewInt(123) + mockBatchHash := crypto.Keccak256Hash([]byte("mockBatch")) + mockStateRoot := crypto.Keccak256Hash([]byte("mockStateRoot")) + mockWithdrawRoot := crypto.Keccak256Hash([]byte("mockWithdrawRoot")) + + tests := []struct { + eventName string + mockLog types.Log + expected interface{} + out interface{} + }{ + { + "CommitBatch", + types.Log{ + Data: []byte{}, + Topics: []common.Hash{scrollChainABI.Events["CommitBatch"].ID, common.BigToHash(mockBatchIndex), mockBatchHash}, + }, + &L1CommitBatchEvent{BatchIndex: mockBatchIndex, BatchHash: mockBatchHash}, + &L1CommitBatchEvent{}, + }, + { + "RevertBatch", + types.Log{ + Data: []byte{}, + Topics: []common.Hash{scrollChainABI.Events["RevertBatch"].ID, common.BigToHash(mockBatchIndex), mockBatchHash}, + }, + &L1RevertBatchEvent{BatchIndex: mockBatchIndex, BatchHash: mockBatchHash}, + &L1RevertBatchEvent{}, + }, + { + "FinalizeBatch", + types.Log{ + Data: append(mockStateRoot.Bytes(), mockWithdrawRoot.Bytes()...), + Topics: []common.Hash{scrollChainABI.Events["FinalizeBatch"].ID, common.BigToHash(mockBatchIndex), mockBatchHash}, + }, + &L1FinalizeBatchEvent{ + BatchIndex: mockBatchIndex, + BatchHash: mockBatchHash, + StateRoot: mockStateRoot, + WithdrawRoot: mockWithdrawRoot, + }, + &L1FinalizeBatchEvent{}, + }, + } + + for _, tt := range tests { + t.Run(tt.eventName, func(t *testing.T) { + err := UnpackLog(scrollChainABI, tt.out, tt.eventName, tt.mockLog) + assert.NoError(t, err) + assert.Equal(t, tt.expected, tt.out) + }) + } +} diff --git a/rollup/rollup_sync_service/batch_header.go b/rollup/rollup_sync_service/batch_header.go new file mode 100644 index 000000000000..2930d859afcf --- /dev/null +++ b/rollup/rollup_sync_service/batch_header.go @@ -0,0 +1,123 @@ +package rollup_sync_service + +import ( + "encoding/binary" + "fmt" + "math/big" + + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/crypto" +) + +const batchHeaderVersion = 0 + +// BatchHeader contains batch header info to be committed. +type BatchHeader struct { + // Encoded in BatchHeaderV0Codec + version uint8 + batchIndex uint64 + l1MessagePopped uint64 + totalL1MessagePopped uint64 + dataHash common.Hash + parentBatchHash common.Hash + skippedL1MessageBitmap []byte +} + +// NewBatchHeader creates a new BatchHeader +func NewBatchHeader(version uint8, batchIndex, totalL1MessagePoppedBefore uint64, parentBatchHash common.Hash, chunks []*Chunk) (*BatchHeader, error) { + // buffer for storing chunk hashes in order to compute the batch data hash + var dataBytes []byte + + // skipped L1 message bitmap, an array of 256-bit bitmaps + var skippedBitmap []*big.Int + + // the first queue index that belongs to this batch + baseIndex := totalL1MessagePoppedBefore + + // the next queue index that we need to process + nextIndex := totalL1MessagePoppedBefore + + for chunkID, chunk := range chunks { + // build data hash + totalL1MessagePoppedBeforeChunk := nextIndex + chunkHash, err := chunk.Hash(totalL1MessagePoppedBeforeChunk) + if err != nil { + return nil, err + } + dataBytes = append(dataBytes, chunkHash.Bytes()...) + + // build skip bitmap + for blockID, block := range chunk.Blocks { + for _, tx := range block.Transactions { + if tx.Type != types.L1MessageTxType { + continue + } + currentIndex := tx.Nonce + + if currentIndex < nextIndex { + return nil, fmt.Errorf("unexpected batch payload, expected queue index: %d, got: %d. Batch index: %d, chunk index in batch: %d, block index in chunk: %d, block hash: %v, transaction hash: %v", nextIndex, currentIndex, batchIndex, chunkID, blockID, block.Header.Hash(), tx.TxHash) + } + + // mark skipped messages + for skippedIndex := nextIndex; skippedIndex < currentIndex; skippedIndex++ { + quo := int((skippedIndex - baseIndex) / 256) + rem := int((skippedIndex - baseIndex) % 256) + for len(skippedBitmap) <= quo { + bitmap := big.NewInt(0) + skippedBitmap = append(skippedBitmap, bitmap) + } + skippedBitmap[quo].SetBit(skippedBitmap[quo], rem, 1) + } + + // process included message + quo := int((currentIndex - baseIndex) / 256) + for len(skippedBitmap) <= quo { + bitmap := big.NewInt(0) + skippedBitmap = append(skippedBitmap, bitmap) + } + + nextIndex = currentIndex + 1 + } + } + } + + // compute data hash + dataHash := crypto.Keccak256Hash(dataBytes) + + // compute skipped bitmap + bitmapBytes := make([]byte, len(skippedBitmap)*32) + for ii, num := range skippedBitmap { + bytes := num.Bytes() + padding := 32 - len(bytes) + copy(bitmapBytes[32*ii+padding:], bytes) + } + + return &BatchHeader{ + version: version, + batchIndex: batchIndex, + l1MessagePopped: nextIndex - totalL1MessagePoppedBefore, + totalL1MessagePopped: nextIndex, + dataHash: dataHash, + parentBatchHash: parentBatchHash, + skippedL1MessageBitmap: bitmapBytes, + }, nil +} + +// Encode encodes the BatchHeader into RollupV2 BatchHeaderV0Codec Encoding. +func (b *BatchHeader) Encode() []byte { + batchBytes := make([]byte, 89+len(b.skippedL1MessageBitmap)) + batchBytes[0] = b.version + binary.BigEndian.PutUint64(batchBytes[1:], b.batchIndex) + binary.BigEndian.PutUint64(batchBytes[9:], b.l1MessagePopped) + binary.BigEndian.PutUint64(batchBytes[17:], b.totalL1MessagePopped) + copy(batchBytes[25:], b.dataHash[:]) + copy(batchBytes[57:], b.parentBatchHash[:]) + copy(batchBytes[89:], b.skippedL1MessageBitmap[:]) + return batchBytes +} + +// Hash calculates the hash of the batch header. +func (b *BatchHeader) Hash() common.Hash { + return crypto.Keccak256Hash(b.Encode()) +} diff --git a/rollup/rollup_sync_service/block.go b/rollup/rollup_sync_service/block.go new file mode 100644 index 000000000000..e86fb020b4de --- /dev/null +++ b/rollup/rollup_sync_service/block.go @@ -0,0 +1,167 @@ +package rollup_sync_service + +import ( + "encoding/binary" + "errors" + "fmt" + "math" + "math/big" + + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/common/hexutil" + "github.com/scroll-tech/go-ethereum/core/types" +) + +const blockContextByteSize = 60 + +// WrappedBlock contains the block's Header, Transactions and WithdrawTrieRoot hash. +type WrappedBlock struct { + Header *types.Header `json:"header"` + // Transactions is only used for recover types.Transactions, the from of types.TransactionData field is missing. + Transactions []*types.TransactionData `json:"transactions"` + WithdrawRoot common.Hash `json:"withdraw_trie_root,omitempty"` +} + +// BlockContext represents the essential data of a block in the ScrollChain. +// It provides an overview of block attributes including hash values, block numbers, gas details, and transaction counts. +type BlockContext struct { + BlockHash common.Hash + ParentHash common.Hash + BlockNumber uint64 + Timestamp uint64 + BaseFee *big.Int + GasLimit uint64 + NumTransactions uint16 + NumL1Messages uint16 +} + +// numL1Messages returns the number of L1 messages in this block. +// This number is the sum of included and skipped L1 messages. +func (w *WrappedBlock) numL1Messages(totalL1MessagePoppedBefore uint64) uint64 { + var lastQueueIndex *uint64 + for _, txData := range w.Transactions { + if txData.Type == types.L1MessageTxType { + lastQueueIndex = &txData.Nonce + } + } + if lastQueueIndex == nil { + return 0 + } + // note: last queue index included before this block is totalL1MessagePoppedBefore - 1 + // TODO: cache results + return *lastQueueIndex - totalL1MessagePoppedBefore + 1 +} + +// Encode encodes the WrappedBlock into RollupV2 BlockContext Encoding. +func (w *WrappedBlock) Encode(totalL1MessagePoppedBefore uint64) ([]byte, error) { + bytes := make([]byte, 60) + + if !w.Header.Number.IsUint64() { + return nil, errors.New("block number is not uint64") + } + + // note: numL1Messages includes skipped messages + numL1Messages := w.numL1Messages(totalL1MessagePoppedBefore) + if numL1Messages > math.MaxUint16 { + return nil, errors.New("number of L1 messages exceeds max uint16") + } + + // note: numTransactions includes skipped messages + numL2Transactions := w.numL2Transactions() + numTransactions := numL1Messages + numL2Transactions + if numTransactions > math.MaxUint16 { + return nil, errors.New("number of transactions exceeds max uint16") + } + + binary.BigEndian.PutUint64(bytes[0:], w.Header.Number.Uint64()) + binary.BigEndian.PutUint64(bytes[8:], w.Header.Time) + // TODO: [16:47] Currently, baseFee is 0, because we disable EIP-1559. + binary.BigEndian.PutUint64(bytes[48:], w.Header.GasLimit) + binary.BigEndian.PutUint16(bytes[56:], uint16(numTransactions)) + binary.BigEndian.PutUint16(bytes[58:], uint16(numL1Messages)) + + return bytes, nil +} + +func txsToTxsData(txs types.Transactions) []*types.TransactionData { + txsData := make([]*types.TransactionData, len(txs)) + for i, tx := range txs { + v, r, s := tx.RawSignatureValues() + + nonce := tx.Nonce() + + // We need QueueIndex in `NewBatchHeader`. However, `TransactionData` + // does not have this field. Since `L1MessageTx` do not have a nonce, + // we reuse this field for storing the queue index. + if msg := tx.AsL1MessageTx(); msg != nil { + nonce = msg.QueueIndex + } + + txsData[i] = &types.TransactionData{ + Type: tx.Type(), + TxHash: tx.Hash().String(), + Nonce: nonce, + ChainId: (*hexutil.Big)(tx.ChainId()), + Gas: tx.Gas(), + GasPrice: (*hexutil.Big)(tx.GasPrice()), + To: tx.To(), + Value: (*hexutil.Big)(tx.Value()), + Data: hexutil.Encode(tx.Data()), + IsCreate: tx.To() == nil, + V: (*hexutil.Big)(v), + R: (*hexutil.Big)(r), + S: (*hexutil.Big)(s), + } + } + return txsData +} + +func convertTxDataToRLPEncoding(txData *types.TransactionData) ([]byte, error) { + data, err := hexutil.Decode(txData.Data) + if err != nil { + return nil, fmt.Errorf("failed to decode txData.Data: %s, err: %w", txData.Data, err) + } + + tx := types.NewTx(&types.LegacyTx{ + Nonce: txData.Nonce, + To: txData.To, + Value: txData.Value.ToInt(), + Gas: txData.Gas, + GasPrice: txData.GasPrice.ToInt(), + Data: data, + V: txData.V.ToInt(), + R: txData.R.ToInt(), + S: txData.S.ToInt(), + }) + + rlpTxData, err := tx.MarshalBinary() + if err != nil { + return nil, fmt.Errorf("failed to marshal binary of the tx: %+v, err: %w", tx, err) + } + + return rlpTxData, nil +} + +func (w *WrappedBlock) numL2Transactions() uint64 { + var count uint64 + for _, txData := range w.Transactions { + if txData.Type != types.L1MessageTxType { + count++ + } + } + return count +} + +func decodeBlockContext(encodedBlockContext []byte) (*BlockContext, error) { + if len(encodedBlockContext) != blockContextByteSize { + return nil, errors.New("block encoding is not 60 bytes long") + } + + return &BlockContext{ + BlockNumber: binary.BigEndian.Uint64(encodedBlockContext[0:8]), + Timestamp: binary.BigEndian.Uint64(encodedBlockContext[8:16]), + GasLimit: binary.BigEndian.Uint64(encodedBlockContext[48:56]), + NumTransactions: binary.BigEndian.Uint16(encodedBlockContext[56:58]), + NumL1Messages: binary.BigEndian.Uint16(encodedBlockContext[58:60]), + }, nil +} diff --git a/rollup/rollup_sync_service/chunk.go b/rollup/rollup_sync_service/chunk.go new file mode 100644 index 000000000000..6df318d358b2 --- /dev/null +++ b/rollup/rollup_sync_service/chunk.go @@ -0,0 +1,155 @@ +package rollup_sync_service + +import ( + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + "strings" + + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/rawdb" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/crypto" +) + +// Chunk contains blocks to be encoded +type Chunk struct { + Blocks []*WrappedBlock `json:"blocks"` +} + +// NumL1Messages returns the number of L1 messages in this chunk. +// This number is the sum of included and skipped L1 messages. +func (c *Chunk) NumL1Messages(totalL1MessagePoppedBefore uint64) uint64 { + var numL1Messages uint64 + for _, block := range c.Blocks { + numL1MessagesInBlock := block.numL1Messages(totalL1MessagePoppedBefore) + numL1Messages += numL1MessagesInBlock + totalL1MessagePoppedBefore += numL1MessagesInBlock + } + // TODO: cache results + return numL1Messages +} + +// Encode encodes the Chunk into RollupV2 Chunk Encoding. +func (c *Chunk) Encode(totalL1MessagePoppedBefore uint64) ([]byte, error) { + numBlocks := len(c.Blocks) + + if numBlocks > 255 { + return nil, errors.New("number of blocks exceeds 1 byte") + } + if numBlocks == 0 { + return nil, errors.New("number of blocks is 0") + } + + var chunkBytes []byte + chunkBytes = append(chunkBytes, byte(numBlocks)) + + var l2TxDataBytes []byte + + for _, block := range c.Blocks { + blockBytes, err := block.Encode(totalL1MessagePoppedBefore) + if err != nil { + return nil, fmt.Errorf("failed to encode block: %v", err) + } + totalL1MessagePoppedBefore += block.numL1Messages(totalL1MessagePoppedBefore) + + if len(blockBytes) != 60 { + return nil, fmt.Errorf("block encoding is not 60 bytes long %x", len(blockBytes)) + } + + chunkBytes = append(chunkBytes, blockBytes...) + + // Append rlp-encoded l2Txs + for _, txData := range block.Transactions { + if txData.Type == types.L1MessageTxType { + continue + } + rlpTxData, err := convertTxDataToRLPEncoding(txData) + if err != nil { + return nil, err + } + var txLen [4]byte + binary.BigEndian.PutUint32(txLen[:], uint32(len(rlpTxData))) + l2TxDataBytes = append(l2TxDataBytes, txLen[:]...) + l2TxDataBytes = append(l2TxDataBytes, rlpTxData...) + } + } + + chunkBytes = append(chunkBytes, l2TxDataBytes...) + + return chunkBytes, nil +} + +// Hash hashes the Chunk into RollupV2 Chunk Hash +func (c *Chunk) Hash(totalL1MessagePoppedBefore uint64) (common.Hash, error) { + chunkBytes, err := c.Encode(totalL1MessagePoppedBefore) + if err != nil { + return common.Hash{}, err + } + numBlocks := chunkBytes[0] + + // concatenate block contexts + var dataBytes []byte + for i := 0; i < int(numBlocks); i++ { + // only the first 58 bytes of each BlockContext are needed for the hashing process + dataBytes = append(dataBytes, chunkBytes[1+60*i:60*i+59]...) + } + + // concatenate l1 and l2 tx hashes + for _, block := range c.Blocks { + var l1TxHashes []byte + var l2TxHashes []byte + for _, txData := range block.Transactions { + txHash := strings.TrimPrefix(txData.TxHash, "0x") + hashBytes, err := hex.DecodeString(txHash) + if err != nil { + return common.Hash{}, err + } + if txData.Type == types.L1MessageTxType { + l1TxHashes = append(l1TxHashes, hashBytes...) + } else { + l2TxHashes = append(l2TxHashes, hashBytes...) + } + } + dataBytes = append(dataBytes, l1TxHashes...) + dataBytes = append(dataBytes, l2TxHashes...) + } + + hash := crypto.Keccak256Hash(dataBytes) + return hash, nil +} + +// DecodeChunkBlockRanges decodes the provided chunks into a list of block ranges. Each chunk +// contains information about multiple blocks, which are decoded and their ranges (from the +// start block to the end block) are returned. +func DecodeChunkBlockRanges(chunks [][]byte) ([]*rawdb.ChunkBlockRange, error) { + var chunkBlockRanges []*rawdb.ChunkBlockRange + for _, chunk := range chunks { + if len(chunk) < 1 { + return nil, fmt.Errorf("invalid chunk, length is less than 1") + } + + numBlocks := int(chunk[0]) + if len(chunk) < 1+numBlocks*blockContextByteSize { + return nil, fmt.Errorf("chunk size doesn't match with numBlocks") + } + + blockContexts := make([]*BlockContext, numBlocks) + for i := 0; i < numBlocks; i++ { + startIdx := 1 + i*blockContextByteSize // add 1 to skip numBlocks byte + endIdx := startIdx + blockContextByteSize + blockContext, err := decodeBlockContext(chunk[startIdx:endIdx]) + if err != nil { + return nil, err + } + blockContexts[i] = blockContext + } + + chunkBlockRanges = append(chunkBlockRanges, &rawdb.ChunkBlockRange{ + StartBlockNumber: blockContexts[0].BlockNumber, + EndBlockNumber: blockContexts[len(blockContexts)-1].BlockNumber, + }) + } + return chunkBlockRanges, nil +} diff --git a/rollup/rollup_sync_service/l1client.go b/rollup/rollup_sync_service/l1client.go new file mode 100644 index 000000000000..0aaf4466ca47 --- /dev/null +++ b/rollup/rollup_sync_service/l1client.go @@ -0,0 +1,92 @@ +package rollup_sync_service + +import ( + "context" + "errors" + "fmt" + "math/big" + + "github.com/scroll-tech/go-ethereum" + "github.com/scroll-tech/go-ethereum/accounts/abi" + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/log" + "github.com/scroll-tech/go-ethereum/rpc" + + "github.com/scroll-tech/go-ethereum/rollup/sync_service" +) + +// L1Client is a wrapper around EthClient that adds +// methods for conveniently collecting rollup events of ScrollChain contract. +type L1Client struct { + ctx context.Context + client sync_service.EthClient + scrollChainAddress common.Address + l1CommitBatchEventSignature common.Hash + l1RevertBatchEventSignature common.Hash + l1FinalizeBatchEventSignature common.Hash +} + +// newL1Client initializes a new L1Client instance with the provided configuration. +// It checks for a valid scrollChainAddress and verifies the chain ID. +func newL1Client(ctx context.Context, l1Client sync_service.EthClient, l1ChainId uint64, scrollChainAddress common.Address, scrollChainABI *abi.ABI) (*L1Client, error) { + if scrollChainAddress == (common.Address{}) { + return nil, errors.New("must pass non-zero scrollChainAddress to L1Client") + } + + // sanity check: compare chain IDs + got, err := l1Client.ChainID(ctx) + if err != nil { + return nil, fmt.Errorf("failed to query L1 chain ID, err: %w", err) + } + if got.Cmp(big.NewInt(0).SetUint64(l1ChainId)) != 0 { + return nil, fmt.Errorf("unexpected chain ID, expected: %v, got: %v", l1ChainId, got) + } + + client := L1Client{ + ctx: ctx, + client: l1Client, + scrollChainAddress: scrollChainAddress, + l1CommitBatchEventSignature: scrollChainABI.Events["CommitBatch"].ID, + l1RevertBatchEventSignature: scrollChainABI.Events["RevertBatch"].ID, + l1FinalizeBatchEventSignature: scrollChainABI.Events["FinalizeBatch"].ID, + } + + return &client, nil +} + +// fetcRollupEventsInRange retrieves and parses commit/revert/finalize rollup events between block numbers: [from, to]. +func (c *L1Client) fetchRollupEventsInRange(ctx context.Context, from, to uint64) ([]types.Log, error) { + log.Trace("L1Client fetchRollupEventsInRange", "fromBlock", from, "toBlock", to) + + query := ethereum.FilterQuery{ + FromBlock: big.NewInt(int64(from)), // inclusive + ToBlock: big.NewInt(int64(to)), // inclusive + Addresses: []common.Address{ + c.scrollChainAddress, + }, + Topics: make([][]common.Hash, 1), + } + query.Topics[0] = make([]common.Hash, 3) + query.Topics[0][0] = c.l1CommitBatchEventSignature + query.Topics[0][1] = c.l1RevertBatchEventSignature + query.Topics[0][2] = c.l1FinalizeBatchEventSignature + + logs, err := c.client.FilterLogs(c.ctx, query) + if err != nil { + return nil, fmt.Errorf("failed to filter logs, err: %w", err) + } + return logs, nil +} + +// getLatestFinalizedBlockNumber fetches the block number of the latest finalized block from the L1 chain. +func (c *L1Client) getLatestFinalizedBlockNumber(ctx context.Context) (uint64, error) { + header, err := c.client.HeaderByNumber(ctx, big.NewInt(int64(rpc.FinalizedBlockNumber))) + if err != nil { + return 0, err + } + if !header.Number.IsInt64() { + return 0, fmt.Errorf("received unexpected block number in L1Client: %v", header.Number) + } + return header.Number.Uint64(), nil +} diff --git a/rollup/rollup_sync_service/l1client_test.go b/rollup/rollup_sync_service/l1client_test.go new file mode 100644 index 000000000000..2ac6ee6e66a2 --- /dev/null +++ b/rollup/rollup_sync_service/l1client_test.go @@ -0,0 +1,70 @@ +package rollup_sync_service + +import ( + "context" + "math/big" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/scroll-tech/go-ethereum" + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/rlp" +) + +func TestL1Client(t *testing.T) { + ctx := context.Background() + mockClient := &mockEthClient{} + + scrollChainABI, err := scrollChainMetaData.GetAbi() + if err != nil { + t.Fatal("failed to get scroll chain abi", "err", err) + } + scrollChainAddress := common.HexToAddress("0x0123456789abcdef") + l1Client, err := newL1Client(ctx, mockClient, 11155111, scrollChainAddress, scrollChainABI) + require.NoError(t, err, "Failed to initialize L1Client") + + blockNumber, err := l1Client.getLatestFinalizedBlockNumber(ctx) + assert.NoError(t, err, "Error getting latest confirmed block number") + assert.Equal(t, uint64(36), blockNumber, "Unexpected block number") + + logs, err := l1Client.fetchRollupEventsInRange(ctx, 0, blockNumber) + assert.NoError(t, err, "Error fetching rollup events in range") + assert.Empty(t, logs, "Expected no logs from fetchRollupEventsInRange") +} + +type mockEthClient struct { + commitBatchRLP []byte +} + +func (m *mockEthClient) BlockNumber(ctx context.Context) (uint64, error) { + return 11155111, nil +} + +func (m *mockEthClient) ChainID(ctx context.Context) (*big.Int, error) { + return big.NewInt(11155111), nil +} + +func (m *mockEthClient) FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error) { + return []types.Log{}, nil +} + +func (m *mockEthClient) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) { + return &types.Header{ + Number: big.NewInt(100 - 64), + }, nil +} + +func (m *mockEthClient) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + return nil, nil +} + +func (m *mockEthClient) TransactionByHash(ctx context.Context, txHash common.Hash) (*types.Transaction, bool, error) { + var tx types.Transaction + if err := rlp.DecodeBytes(m.commitBatchRLP, &tx); err != nil { + return nil, false, err + } + return &tx, false, nil +} diff --git a/rollup/rollup_sync_service/rollup_sync_service.go b/rollup/rollup_sync_service/rollup_sync_service.go new file mode 100644 index 000000000000..b6d0f653f031 --- /dev/null +++ b/rollup/rollup_sync_service/rollup_sync_service.go @@ -0,0 +1,420 @@ +package rollup_sync_service + +import ( + "context" + "encoding/json" + "fmt" + "os" + "reflect" + "syscall" + "time" + + "github.com/scroll-tech/go-ethereum/accounts/abi" + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core" + "github.com/scroll-tech/go-ethereum/core/rawdb" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/ethdb" + "github.com/scroll-tech/go-ethereum/log" + "github.com/scroll-tech/go-ethereum/params" + + "github.com/scroll-tech/go-ethereum/rollup/rcfg" + "github.com/scroll-tech/go-ethereum/rollup/sync_service" + "github.com/scroll-tech/go-ethereum/rollup/withdrawtrie" +) + +const ( + // defaultFetchBlockRange is the number of blocks that we collect in a single eth_getLogs query. + defaultFetchBlockRange = uint64(100) + + // defaultSyncInterval is the frequency at which we query for new rollup event. + defaultSyncInterval = 60 * time.Second + + // defaultMaxRetries is the maximum number of retries allowed when the local node is not synced up to the required block height. + defaultMaxRetries = 20 + + // defaultGetBlockInRangeRetryDelay is the time delay between retries when attempting to get blocks in range. + // The service will wait for this duration if it detects that the local node has not synced up to the block height + // of a specific L1 batch finalize event. + defaultGetBlockInRangeRetryDelay = 60 * time.Second + + // defaultLogInterval is the frequency at which we print the latestProcessedBlock. + defaultLogInterval = 5 * time.Minute +) + +// RollupSyncService collects ScrollChain batch commit/revert/finalize events and stores metadata into db. +type RollupSyncService struct { + ctx context.Context + cancel context.CancelFunc + client *L1Client + db ethdb.Database + latestProcessedBlock uint64 + scrollChainABI *abi.ABI + l1CommitBatchEventSignature common.Hash + l1RevertBatchEventSignature common.Hash + l1FinalizeBatchEventSignature common.Hash + bc *core.BlockChain +} + +func NewRollupSyncService(ctx context.Context, genesisConfig *params.ChainConfig, db ethdb.Database, l1Client sync_service.EthClient, bc *core.BlockChain, l1DeploymentBlock uint64) (*RollupSyncService, error) { + // terminate if the caller does not provide an L1 client (e.g. in tests) + if l1Client == nil || (reflect.ValueOf(l1Client).Kind() == reflect.Ptr && reflect.ValueOf(l1Client).IsNil()) { + log.Warn("No L1 client provided, L1 rollup sync service will not run") + return nil, nil + } + + if genesisConfig.Scroll.L1Config == nil { + return nil, fmt.Errorf("missing L1 config in genesis") + } + + scrollChainABI, err := scrollChainMetaData.GetAbi() + if err != nil { + return nil, fmt.Errorf("failed to get scroll chain abi: %w", err) + } + + client, err := newL1Client(ctx, l1Client, genesisConfig.Scroll.L1Config.L1ChainId, genesisConfig.Scroll.L1Config.ScrollChainAddress, scrollChainABI) + if err != nil { + return nil, fmt.Errorf("failed to initialize l1 client: %w", err) + } + + // Initialize the latestProcessedBlock with the block just before the L1 deployment block. + // This serves as a default value when there's no L1 rollup events synced in the database. + var latestProcessedBlock uint64 + if l1DeploymentBlock > 0 { + latestProcessedBlock = l1DeploymentBlock - 1 + } + + block := rawdb.ReadRollupEventSyncedL1BlockNumber(db) + if block != nil { + // restart from latest synced block number + latestProcessedBlock = *block + } + + ctx, cancel := context.WithCancel(ctx) + + service := RollupSyncService{ + ctx: ctx, + cancel: cancel, + client: client, + db: db, + latestProcessedBlock: latestProcessedBlock, + scrollChainABI: scrollChainABI, + l1CommitBatchEventSignature: scrollChainABI.Events["CommitBatch"].ID, + l1RevertBatchEventSignature: scrollChainABI.Events["RevertBatch"].ID, + l1FinalizeBatchEventSignature: scrollChainABI.Events["FinalizeBatch"].ID, + bc: bc, + } + + return &service, nil +} + +func (s *RollupSyncService) Start() { + if s == nil { + return + } + + log.Info("Starting rollup event sync background service", "latest processed block", s.latestProcessedBlock) + + go func() { + syncTicker := time.NewTicker(defaultSyncInterval) + defer syncTicker.Stop() + + logTicker := time.NewTicker(defaultLogInterval) + defer logTicker.Stop() + + for { + select { + case <-s.ctx.Done(): + return + case <-syncTicker.C: + s.fetchRollupEvents() + case <-logTicker.C: + log.Info("Sync rollup events progress update", "latestProcessedBlock", s.latestProcessedBlock) + } + } + }() +} + +func (s *RollupSyncService) Stop() { + if s == nil { + return + } + + log.Info("Stopping rollup event sync background service") + + if s.cancel != nil { + s.cancel() + } +} + +func (s *RollupSyncService) fetchRollupEvents() { + latestConfirmed, err := s.client.getLatestFinalizedBlockNumber(s.ctx) + if err != nil { + log.Warn("failed to get latest confirmed block number", "err", err) + return + } + + log.Trace("Sync service fetch rollup events", "latest processed block", s.latestProcessedBlock, "latest confirmed", latestConfirmed) + + // query in batches + for from := s.latestProcessedBlock + 1; from <= latestConfirmed; from += defaultFetchBlockRange { + if s.ctx.Err() != nil { + log.Info("Context canceled", "reason", s.ctx.Err()) + return + } + + to := from + defaultFetchBlockRange - 1 + if to > latestConfirmed { + to = latestConfirmed + } + + logs, err := s.client.fetchRollupEventsInRange(s.ctx, from, to) + if err != nil { + log.Error("failed to fetch rollup events in range", "from block", from, "to block", to, "err", err) + return + } + + if err := s.parseAndUpdateRollupEventLogs(logs, to); err != nil { + log.Error("failed to parse and update rollup event logs", "err", err) + return + } + + s.latestProcessedBlock = to + } +} + +func (s *RollupSyncService) parseAndUpdateRollupEventLogs(logs []types.Log, endBlockNumber uint64) error { + for _, vLog := range logs { + switch vLog.Topics[0] { + case s.l1CommitBatchEventSignature: + event := &L1CommitBatchEvent{} + if err := UnpackLog(s.scrollChainABI, event, "CommitBatch", vLog); err != nil { + return fmt.Errorf("failed to unpack commit rollup event log, err: %w", err) + } + batchIndex := event.BatchIndex.Uint64() + log.Trace("found new CommitBatch event", "batch index", batchIndex) + + chunkBlockRanges, err := s.getChunkRanges(batchIndex, &vLog) + if err != nil { + return fmt.Errorf("failed to get chunk ranges, err: %w", err) + } + rawdb.WriteBatchChunkRanges(s.db, batchIndex, chunkBlockRanges) + + case s.l1RevertBatchEventSignature: + event := &L1RevertBatchEvent{} + if err := UnpackLog(s.scrollChainABI, event, "RevertBatch", vLog); err != nil { + return fmt.Errorf("failed to unpack revert rollup event log, err: %w", err) + } + batchIndex := event.BatchIndex.Uint64() + log.Trace("found new RevertBatch event", "batch index", batchIndex) + + rawdb.DeleteBatchChunkRanges(s.db, batchIndex) + + case s.l1FinalizeBatchEventSignature: + event := &L1FinalizeBatchEvent{} + if err := UnpackLog(s.scrollChainABI, event, "FinalizeBatch", vLog); err != nil { + return fmt.Errorf("failed to unpack finalized rollup event log, err: %w", err) + } + batchIndex := event.BatchIndex.Uint64() + log.Trace("found new FinalizeBatch event", "batch index", batchIndex) + + parentBatchMeta, chunks, err := s.getLocalInfoForBatch(batchIndex) + if err != nil { + return fmt.Errorf("failed to get local node info, batch index: %v, err: %w", batchIndex, err) + } + + endBlock, finalizedBatchMeta, err := validateBatch(event, parentBatchMeta, chunks) + if err != nil { + return fmt.Errorf("fatal: validateBatch failed: finalize event: %v, err: %w", event, err) + } + + rawdb.WriteFinalizedL2BlockNumber(s.db, endBlock) + rawdb.WriteFinalizedBatchMeta(s.db, batchIndex, finalizedBatchMeta) + + if batchIndex%100 == 0 { + log.Info("finalized batch progress", "batch index", batchIndex, "finalized l2 block height", endBlock) + } + + default: + return fmt.Errorf("unknown event, topic: %v, tx hash: %v", vLog.Topics[0].Hex(), vLog.TxHash.Hex()) + } + } + + // note: the batch updates above are idempotent, if we crash + // before this line and reexecute the previous steps, we will + // get the same result. + rawdb.WriteRollupEventSyncedL1BlockNumber(s.db, endBlockNumber) + return nil +} + +func (s *RollupSyncService) getLocalInfoForBatch(batchIndex uint64) (*rawdb.FinalizedBatchMeta, []*Chunk, error) { + chunkBlockRanges := rawdb.ReadBatchChunkRanges(s.db, batchIndex) + if len(chunkBlockRanges) == 0 { + return nil, nil, fmt.Errorf("failed to get batch chunk ranges, empty chunk block ranges") + } + + endBlockNumber := chunkBlockRanges[len(chunkBlockRanges)-1].EndBlockNumber + for i := 0; i < defaultMaxRetries; i++ { + if s.ctx.Err() != nil { + log.Info("Context canceled", "reason", s.ctx.Err()) + return nil, nil, s.ctx.Err() + } + + localSyncedBlockHeight := s.bc.CurrentBlock().Number().Uint64() + if localSyncedBlockHeight >= endBlockNumber { + break // ready to proceed, exit retry loop + } + + log.Debug("local node is not synced up to the required block height, waiting for next retry", + "retries", i+1, "local synced block height", localSyncedBlockHeight, "required end block number", endBlockNumber) + time.Sleep(defaultGetBlockInRangeRetryDelay) + } + + localSyncedBlockHeight := s.bc.CurrentBlock().Number().Uint64() + if localSyncedBlockHeight < endBlockNumber { + return nil, nil, fmt.Errorf("local node is not synced up to the required block height: %v, local synced block height: %v", endBlockNumber, localSyncedBlockHeight) + } + + chunks := make([]*Chunk, len(chunkBlockRanges)) + for i, cr := range chunkBlockRanges { + chunks[i] = &Chunk{Blocks: make([]*WrappedBlock, cr.EndBlockNumber-cr.StartBlockNumber+1)} + for j := cr.StartBlockNumber; j <= cr.EndBlockNumber; j++ { + block := s.bc.GetBlockByNumber(j) + if block == nil { + return nil, nil, fmt.Errorf("failed to get block by number: %v", i) + } + txData := txsToTxsData(block.Transactions()) + state, err := s.bc.StateAt(block.Root()) + if err != nil { + return nil, nil, fmt.Errorf("failed to get block state, block: %v, err: %w", block.Hash().Hex(), err) + } + withdrawRoot := withdrawtrie.ReadWTRSlot(rcfg.L2MessageQueueAddress, state) + chunks[i].Blocks[j-cr.StartBlockNumber] = &WrappedBlock{ + Header: block.Header(), + Transactions: txData, + WithdrawRoot: withdrawRoot, + } + } + } + + // get metadata of parent batch: default to genesis batch metadata. + parentBatchMeta := &rawdb.FinalizedBatchMeta{} + if batchIndex > 0 { + parentBatchMeta = rawdb.ReadFinalizedBatchMeta(s.db, batchIndex-1) + } + + return parentBatchMeta, chunks, nil +} + +func (s *RollupSyncService) getChunkRanges(batchIndex uint64, vLog *types.Log) ([]*rawdb.ChunkBlockRange, error) { + if batchIndex == 0 { + return []*rawdb.ChunkBlockRange{{StartBlockNumber: 0, EndBlockNumber: 0}}, nil + } + + tx, _, err := s.client.client.TransactionByHash(context.Background(), vLog.TxHash) + if err != nil { + return nil, fmt.Errorf("failed to get transaction, err: %w", err) + } + + return s.decodeChunkBlockRanges(tx.Data()) +} + +// decodeChunkBlockRanges decodes chunks in a batch based on the commit batch transaction's calldata. +func (s *RollupSyncService) decodeChunkBlockRanges(txData []byte) ([]*rawdb.ChunkBlockRange, error) { + const methodIDLength = 4 + if len(txData) < methodIDLength { + return nil, fmt.Errorf("transaction data is too short") + } + + method, err := s.scrollChainABI.MethodById(txData[:methodIDLength]) + if err != nil { + return nil, fmt.Errorf("failed to get method by ID, ID: %v, err: %w", txData[:4], err) + } + + values, err := method.Inputs.Unpack(txData[methodIDLength:]) + if err != nil { + return nil, fmt.Errorf("failed to unpack transaction data using ABI: %v", err) + } + + type commitBatchArgs struct { + Version uint8 + ParentBatchHeader []byte + Chunks [][]byte + SkippedL1MessageBitmap []byte + } + var args commitBatchArgs + err = method.Inputs.Copy(&args, values) + if err != nil { + return nil, fmt.Errorf("failed to decode calldata into commitBatch args, err: %w", err) + } + + if args.Version != batchHeaderVersion { + return nil, fmt.Errorf("unexpected batch version, expected: %d, got: %v", batchHeaderVersion, args.Version) + } + + return DecodeChunkBlockRanges(args.Chunks) +} + +// validateBatch verifies the consistency between the L1 contract and L2 node data. +// The function will terminate the node and exit if any consistency check fails. +// It returns the number of the end block, a finalized batch meta data, and an error if any. +func validateBatch(event *L1FinalizeBatchEvent, parentBatchMeta *rawdb.FinalizedBatchMeta, chunks []*Chunk) (uint64, *rawdb.FinalizedBatchMeta, error) { + if len(chunks) == 0 { + return 0, nil, fmt.Errorf("invalid argument: length of chunks is 0") + } + + startChunk := chunks[0] + if len(startChunk.Blocks) == 0 { + return 0, nil, fmt.Errorf("invalid argument: block count of start chunk is 0") + } + startBlock := startChunk.Blocks[0] + + endChunk := chunks[len(chunks)-1] + if len(endChunk.Blocks) == 0 { + return 0, nil, fmt.Errorf("invalid argument: block count of end chunk is 0") + } + endBlock := endChunk.Blocks[len(endChunk.Blocks)-1] + + localStateRoot := endBlock.Header.Root + if localStateRoot != event.StateRoot { + log.Error("State root mismatch", "batch index", event.BatchIndex.Uint64(), "start block", startBlock.Header.Number.Uint64(), "end block", endBlock.Header.Number.Uint64(), "parent batch hash", parentBatchMeta.BatchHash.Hex(), "l1 finalized state root", event.StateRoot.Hex(), "l2 state root", localStateRoot.Hex()) + syscall.Kill(os.Getpid(), syscall.SIGTERM) + return 0, nil, fmt.Errorf("state root mismatch") + } + + localWithdrawRoot := endBlock.WithdrawRoot + if localWithdrawRoot != event.WithdrawRoot { + log.Error("Withdraw root mismatch", "batch index", event.BatchIndex.Uint64(), "start block", startBlock.Header.Number.Uint64(), "end block", endBlock.Header.Number.Uint64(), "parent batch hash", parentBatchMeta.BatchHash.Hex(), "l1 finalized withdraw root", event.WithdrawRoot.Hex(), "l2 withdraw root", localWithdrawRoot.Hex()) + syscall.Kill(os.Getpid(), syscall.SIGTERM) + return 0, nil, fmt.Errorf("withdraw root mismatch") + } + + // Note: All params for NewBatchHeader are calculated locally based on the block data. + batchHeader, err := NewBatchHeader(batchHeaderVersion, event.BatchIndex.Uint64(), parentBatchMeta.TotalL1MessagePopped, parentBatchMeta.BatchHash, chunks) + if err != nil { + return 0, nil, fmt.Errorf("failed to construct batch header, err: %w", err) + } + + // Note: If the batch headers match, this ensures the consistency of blocks and transactions + // (including skipped transactions) between L1 and L2. + localBatchHash := batchHeader.Hash() + if localBatchHash != event.BatchHash { + log.Error("Batch hash mismatch", "batch index", event.BatchIndex.Uint64(), "start block", startBlock.Header.Number.Uint64(), "end block", endBlock.Header.Number.Uint64(), "parent batch hash", parentBatchMeta.BatchHash.Hex(), "parent TotalL1MessagePopped", parentBatchMeta.TotalL1MessagePopped, "l1 finalized batch hash", event.BatchHash.Hex(), "l2 batch hash", localBatchHash.Hex()) + chunksJson, _ := json.Marshal(chunks) + log.Error("Chunks", "chunks", string(chunksJson)) + syscall.Kill(os.Getpid(), syscall.SIGTERM) + return 0, nil, fmt.Errorf("batch hash mismatch") + } + + totalL1MessagePopped := parentBatchMeta.TotalL1MessagePopped + for _, chunk := range chunks { + totalL1MessagePopped += chunk.NumL1Messages(totalL1MessagePopped) + } + finalizedBatchMeta := &rawdb.FinalizedBatchMeta{ + BatchHash: localBatchHash, + TotalL1MessagePopped: totalL1MessagePopped, + StateRoot: localStateRoot, + WithdrawRoot: localWithdrawRoot, + } + return endBlock.Header.Number.Uint64(), finalizedBatchMeta, nil +} diff --git a/rollup/rollup_sync_service/rollup_sync_service_test.go b/rollup/rollup_sync_service/rollup_sync_service_test.go new file mode 100644 index 000000000000..f1e2f0a553fc --- /dev/null +++ b/rollup/rollup_sync_service/rollup_sync_service_test.go @@ -0,0 +1,207 @@ +package rollup_sync_service + +import ( + "context" + "encoding/hex" + "encoding/json" + "math/big" + "os" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core" + "github.com/scroll-tech/go-ethereum/core/rawdb" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/ethdb/memorydb" + "github.com/scroll-tech/go-ethereum/params" +) + +func TestRollupSyncServiceStartAndStop(t *testing.T) { + genesisConfig := ¶ms.ChainConfig{ + Scroll: params.ScrollConfig{ + L1Config: ¶ms.L1Config{ + L1ChainId: 11155111, + ScrollChainAddress: common.HexToAddress("0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0"), + }, + }, + } + db := rawdb.NewDatabase(memorydb.New()) + l1Client := &mockEthClient{} + bc := &core.BlockChain{} + service, err := NewRollupSyncService(context.Background(), genesisConfig, db, l1Client, bc, 1) + if err != nil { + t.Fatalf("Failed to new rollup sync service: %v", err) + } + + assert.NotNil(t, service) + service.Start() + time.Sleep(10 * time.Millisecond) + service.Stop() +} + +func TestDecodeChunkRanges(t *testing.T) { + scrollChainABI, err := scrollChainMetaData.GetAbi() + require.NoError(t, err) + + service := &RollupSyncService{ + scrollChainABI: scrollChainABI, + } + + data, err := os.ReadFile("./testdata/commit_batch_transaction.json") + require.NoError(t, err, "Failed to read json file") + + type transactionJson struct { + CallData string `json:"calldata"` + } + var txObj transactionJson + err = json.Unmarshal(data, &txObj) + require.NoError(t, err, "Failed to unmarshal transaction json") + + testTxData, err := hex.DecodeString(txObj.CallData[2:]) + if err != nil { + t.Fatalf("Failed to decode string: %v", err) + } + + ranges, err := service.decodeChunkBlockRanges(testTxData) + if err != nil { + t.Fatalf("Failed to decode chunk ranges: %v", err) + } + + expectedRanges := []*rawdb.ChunkBlockRange{ + {StartBlockNumber: 335921, EndBlockNumber: 335928}, + {StartBlockNumber: 335929, EndBlockNumber: 335933}, + {StartBlockNumber: 335934, EndBlockNumber: 335938}, + {StartBlockNumber: 335939, EndBlockNumber: 335942}, + {StartBlockNumber: 335943, EndBlockNumber: 335945}, + {StartBlockNumber: 335946, EndBlockNumber: 335949}, + {StartBlockNumber: 335950, EndBlockNumber: 335956}, + {StartBlockNumber: 335957, EndBlockNumber: 335962}, + } + + if len(expectedRanges) != len(ranges) { + t.Fatalf("Expected range length %v, got %v", len(expectedRanges), len(ranges)) + } + + for i := range ranges { + if *expectedRanges[i] != *ranges[i] { + t.Fatalf("Mismatch at index %d: expected %v, got %v", i, *expectedRanges[i], *ranges[i]) + } + } +} + +func TestGetChunkRanges(t *testing.T) { + genesisConfig := ¶ms.ChainConfig{ + Scroll: params.ScrollConfig{ + L1Config: ¶ms.L1Config{ + L1ChainId: 11155111, + ScrollChainAddress: common.HexToAddress("0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0"), + }, + }, + } + db := rawdb.NewDatabase(memorydb.New()) + + rlpData, err := os.ReadFile("./testdata/commit_batch_tx.rlp") + if err != nil { + t.Fatalf("Failed to read RLP data: %v", err) + } + l1Client := &mockEthClient{ + commitBatchRLP: rlpData, + } + bc := &core.BlockChain{} + service, err := NewRollupSyncService(context.Background(), genesisConfig, db, l1Client, bc, 1) + if err != nil { + t.Fatalf("Failed to new rollup sync service: %v", err) + } + + vLog := &types.Log{ + TxHash: common.HexToHash("0x0"), + } + ranges, err := service.getChunkRanges(1, vLog) + require.NoError(t, err) + + expectedRanges := []*rawdb.ChunkBlockRange{ + {StartBlockNumber: 911145, EndBlockNumber: 911151}, + {StartBlockNumber: 911152, EndBlockNumber: 911155}, + {StartBlockNumber: 911156, EndBlockNumber: 911159}, + } + + if len(expectedRanges) != len(ranges) { + t.Fatalf("Expected range length %v, got %v", len(expectedRanges), len(ranges)) + } + + for i := range ranges { + if *expectedRanges[i] != *ranges[i] { + t.Fatalf("Mismatch at index %d: expected %v, got %v", i, *expectedRanges[i], *ranges[i]) + } + } +} + +func TestValidateBatch(t *testing.T) { + templateBlockTrace1, err := os.ReadFile("./testdata/blockTrace_02.json") + require.NoError(t, err) + wrappedBlock1 := &WrappedBlock{} + err = json.Unmarshal(templateBlockTrace1, wrappedBlock1) + require.NoError(t, err) + chunk1 := &Chunk{Blocks: []*WrappedBlock{wrappedBlock1}} + + templateBlockTrace2, err := os.ReadFile("./testdata/blockTrace_03.json") + require.NoError(t, err) + wrappedBlock2 := &WrappedBlock{} + err = json.Unmarshal(templateBlockTrace2, wrappedBlock2) + require.NoError(t, err) + chunk2 := &Chunk{Blocks: []*WrappedBlock{wrappedBlock2}} + + templateBlockTrace3, err := os.ReadFile("./testdata/blockTrace_04.json") + require.NoError(t, err) + wrappedBlock3 := &WrappedBlock{} + err = json.Unmarshal(templateBlockTrace3, wrappedBlock3) + require.NoError(t, err) + chunk3 := &Chunk{Blocks: []*WrappedBlock{wrappedBlock3}} + + parentBatchMeta1 := &rawdb.FinalizedBatchMeta{} + event1 := &L1FinalizeBatchEvent{ + BatchIndex: big.NewInt(0), + BatchHash: common.HexToHash("0xd0f52bc254646e639bf24cc34606319a111975b2fdc431b1381eb6199bc09790"), + StateRoot: chunk3.Blocks[len(chunk3.Blocks)-1].Header.Root, + WithdrawRoot: chunk3.Blocks[len(chunk3.Blocks)-1].WithdrawRoot, + } + endBlock1, finalizedBatchMeta1, err := validateBatch(event1, parentBatchMeta1, []*Chunk{chunk1, chunk2, chunk3}) + assert.NoError(t, err) + assert.Equal(t, uint64(13), endBlock1) + + templateBlockTrace4, err := os.ReadFile("./testdata/blockTrace_05.json") + require.NoError(t, err) + wrappedBlock4 := &WrappedBlock{} + err = json.Unmarshal(templateBlockTrace4, wrappedBlock4) + require.NoError(t, err) + chunk4 := &Chunk{Blocks: []*WrappedBlock{wrappedBlock4}} + + parentBatchMeta2 := &rawdb.FinalizedBatchMeta{ + BatchHash: event1.BatchHash, + TotalL1MessagePopped: 11, + StateRoot: chunk3.Blocks[len(chunk3.Blocks)-1].Header.Root, + WithdrawRoot: chunk3.Blocks[len(chunk3.Blocks)-1].WithdrawRoot, + } + assert.Equal(t, parentBatchMeta2, finalizedBatchMeta1) + event2 := &L1FinalizeBatchEvent{ + BatchIndex: big.NewInt(1), + BatchHash: common.HexToHash("0xfb77bf8f3bf449126ebbf403fdccfcf78636e34d72d62eed8da0e8c9fd38fa63"), + StateRoot: chunk4.Blocks[len(chunk4.Blocks)-1].Header.Root, + WithdrawRoot: chunk4.Blocks[len(chunk4.Blocks)-1].WithdrawRoot, + } + endBlock2, finalizedBatchMeta2, err := validateBatch(event2, parentBatchMeta2, []*Chunk{chunk4}) + assert.NoError(t, err) + assert.Equal(t, uint64(17), endBlock2) + + parentBatchMeta3 := &rawdb.FinalizedBatchMeta{ + BatchHash: event2.BatchHash, + TotalL1MessagePopped: 42, + StateRoot: chunk4.Blocks[len(chunk4.Blocks)-1].Header.Root, + WithdrawRoot: chunk4.Blocks[len(chunk4.Blocks)-1].WithdrawRoot, + } + assert.Equal(t, parentBatchMeta3, finalizedBatchMeta2) +} diff --git a/rollup/rollup_sync_service/testdata/blockTrace_02.json b/rollup/rollup_sync_service/testdata/blockTrace_02.json new file mode 100644 index 000000000000..6c51c4438f1a --- /dev/null +++ b/rollup/rollup_sync_service/testdata/blockTrace_02.json @@ -0,0 +1,591 @@ +{ + "withdrawTrieRoot": "0x0000000000000000000000000000000000000000", + "coinbase": { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + "header": { + "parentHash": "0xe17f08d25ef61a8ee12aa29704b901345a597f5e45a9a0f603ae0f70845b54dc", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "miner": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x25b792bfd6d6456451f996e9383225e026fff469da205bb916768c0a78fd16af", + "transactionsRoot": "0x3057754c197f33e1fe799e996db6232b5257412feea05b3c1754738f0b33fe32", + "receiptsRoot": "0xd95b673818fa493deec414e01e610d97ee287c9421c8eff4102b1647c1a184e4", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x2", + "number": "0x2", + "gasLimit": "0x355418d1e8184", + "gasUsed": "0xa410", + "timestamp": "0x63807b2a", + "extraData": "0xd983010a0d846765746889676f312e31372e3133856c696e75780000000000004b54a94f0df14333e63c8a13dfe6097c1a08b5fd2c225a8dc0f199dae245aead55d6f774a980a0c925be407748d56a14106afda7ddc1dec342e7ee3b0d58a8df01", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x1de9", + "hash": "0xc7b6c7022c8386cdaf6fcd3d4f8d03dce257ae3664a072fdce511ecefce73ad0" + }, + "row_consumption": [ + { + "name": "evm", + "row_number": 1 + }, + { + "name": "state", + "row_number": 2 + }, + { + "name": "bytecode", + "row_number": 3 + }, + { + "name": "copy", + "row_number": 4 + }, + { + "name": "keccak", + "row_number": 5 + }, + { + "name": "tx", + "row_number": 6 + }, + { + "name": "rlp", + "row_number": 7 + }, + { + "name": "exp", + "row_number": 8 + }, + { + "name": "pi", + "row_number": 9 + }, + { + "name": "poseidon", + "row_number": 10 + }, + { + "name": "mpt", + "row_number": 11 + } + ], + "transactions": [ + { + "type": 0, + "nonce": 0, + "txHash": "0xb2febc1213baec968f6575789108e175273b8da8f412468098893084229f1542", + "gas": 500000, + "gasPrice": "0x3b9aec2e", + "from": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "to": "0xc0c4c8baea3f6acb49b6e1fb9e2adeceeacb0ca2", + "chainId": "0xcf55", + "value": "0x152d02c7e14af6000000", + "data": "0x", + "isCreate": false, + "v": "0x19ece", + "r": "0xab07ae99c67aa78e7ba5cf6781e90cc32b219b1de102513d56548a41e86df514", + "s": "0x34cbd19feacd73e8ce64d00c4d1996b9b5243c578fd7f51bfaec288bbaf42a8b" + }, + { + "type": 0, + "nonce": 1, + "txHash": "0xe6ac2ffc543d07f1e280912a2abe3aa659bf83773740681151297ada1bb211dd", + "gas": 500000, + "gasPrice": "0x3b9aec2e", + "from": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "to": "0x01bae6bf68e9a03fb2bc0615b1bf0d69ce9411ed", + "chainId": "0xcf55", + "value": "0x152d02c7e14af6000000", + "data": "0x", + "isCreate": false, + "v": "0x19ece", + "r": "0xf039985866d8256f10c1be4f7b2cace28d8f20bde27e2604393eb095b7f77316", + "s": "0x5a3e6e81065f2b4604bcec5bd4aba684835996fc3f879380aac1c09c6eed32f1" + } + ], + "storageTrace": { + "rootBefore": "0x2579122e8f9ec1e862e7d415cef2fb495d7698a8e5f0dddc5651ba4236336e7d", + "rootAfter": "0x25b792bfd6d6456451f996e9383225e026fff469da205bb916768c0a78fd16af", + "proofs": { + "0x01bae6BF68E9A03Fb2bc0615b1bf0d69ce9411eD": [ + "0x01204920151d7e3cd9d1b5ba09d3ad6ea157c82d1cc425731f209e71a007165a9c0404000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4700000000000000000000000000000000000000000000000000000000000000000201c5a77d9fa7ef466951b2f01f724bca3a5820b63000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x1C5A77d9FA7eF466951B2F01F724BCa3A5820b63": [ + "0x01204920151d7e3cd9d1b5ba09d3ad6ea157c82d1cc425731f209e71a007165a9c0404000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4700000000000000000000000000000000000000000000000000000000000000000201c5a77d9fa7ef466951b2f01f724bca3a5820b63000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0xc0c4C8bAEA3f6Acb49b6E1fb9e2ADEcEeaCB0cA2": [ + "0x01204920151d7e3cd9d1b5ba09d3ad6ea157c82d1cc425731f209e71a007165a9c0404000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4700000000000000000000000000000000000000000000000000000000000000000201c5a77d9fa7ef466951b2f01f724bca3a5820b63000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + } + }, + "executionResults": [ + { + "gas": 21000, + "failed": false, + "returnValue": "", + "from": { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 0, + "balance": "0x200000000000000000000000000000000000000000000000000000000000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + "to": { + "address": "0xc0c4c8baea3f6acb49b6e1fb9e2adeceeacb0ca2", + "nonce": 0, + "balance": "0x0", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "accountAfter": [ + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 1, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffead2fd381eb5006a6eb8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "address": "0xc0c4c8baea3f6acb49b6e1fb9e2adeceeacb0ca2", + "nonce": 0, + "balance": "0x152d02c7e14af6000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 1, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffead2fd381eb5006a6eb8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "structLogs": [] + }, + { + "gas": 21000, + "failed": false, + "returnValue": "", + "from": { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 1, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffead2fd381eb5006a6eb8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + "to": { + "address": "0x01bae6bf68e9a03fb2bc0615b1bf0d69ce9411ed", + "nonce": 0, + "balance": "0x0", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "accountAfter": [ + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "address": "0x01bae6bf68e9a03fb2bc0615b1bf0d69ce9411ed", + "nonce": 0, + "balance": "0x152d02c7e14af6000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "structLogs": [] + } + ], + "mptwitness": [ + { + "address": "0x01bae6bf68e9a03fb2bc0615b1bf0d69ce9411ed", + "accountKey": "0x7f53dc37d5a264eb72d8ae1a31c82239a385d9f6df23b81c48e97862d6d92314", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0x7d6e333642ba5156dcddf0e5a898765d49fbf2ce15d4e762e8c19e8f2e127925", + "leaf": { + "value": "0xdf92dc6c0dd1c7fde78079ea62863977463f07e542966c6393f4d8cd6cce3117", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0x7d6e333642ba5156dcddf0e5a898765d49fbf2ce15d4e762e8c19e8f2e127925", + "leaf": { + "value": "0xdf92dc6c0dd1c7fde78079ea62863977463f07e542966c6393f4d8cd6cce3117", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + null, + null + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "accountKey": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0x7d6e333642ba5156dcddf0e5a898765d49fbf2ce15d4e762e8c19e8f2e127925", + "leaf": { + "value": "0xdf92dc6c0dd1c7fde78079ea62863977463f07e542966c6393f4d8cd6cce3117", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0xf6b9a9f1e25add11bf5d0705e58f4b7a968b281ec23a8d41e719a0e27d87450c", + "leaf": { + "value": "0x716491d19f5e25dc565d05bbde1f30b343b1489b2d923feb30141d24a87c0a00", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + { + "nonce": 0, + "balance": "0x200000000000000000000000000000000000000000000000000000000000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "nonce": 2, + "balance": "0x200000000000000000000000000000000000000000000000000000000000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0xc0c4c8baea3f6acb49b6e1fb9e2adeceeacb0ca2", + "accountKey": "0x9b38091c0e341793f0e755a1ea7b64bfb06455aced31334598fcfd02d1d94616", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0xf6b9a9f1e25add11bf5d0705e58f4b7a968b281ec23a8d41e719a0e27d87450c", + "leaf": { + "value": "0x716491d19f5e25dc565d05bbde1f30b343b1489b2d923feb30141d24a87c0a00", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0xf6b9a9f1e25add11bf5d0705e58f4b7a968b281ec23a8d41e719a0e27d87450c", + "leaf": { + "value": "0x716491d19f5e25dc565d05bbde1f30b343b1489b2d923feb30141d24a87c0a00", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + null, + null + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x01bae6bf68e9a03fb2bc0615b1bf0d69ce9411ed", + "accountKey": "0x7f53dc37d5a264eb72d8ae1a31c82239a385d9f6df23b81c48e97862d6d92314", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0xf6b9a9f1e25add11bf5d0705e58f4b7a968b281ec23a8d41e719a0e27d87450c", + "leaf": { + "value": "0x716491d19f5e25dc565d05bbde1f30b343b1489b2d923feb30141d24a87c0a00", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0xf6b9a9f1e25add11bf5d0705e58f4b7a968b281ec23a8d41e719a0e27d87450c", + "leaf": { + "value": "0x716491d19f5e25dc565d05bbde1f30b343b1489b2d923feb30141d24a87c0a00", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + null, + null + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "accountKey": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0xf6b9a9f1e25add11bf5d0705e58f4b7a968b281ec23a8d41e719a0e27d87450c", + "leaf": { + "value": "0x716491d19f5e25dc565d05bbde1f30b343b1489b2d923feb30141d24a87c0a00", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806", + "leaf": { + "value": "0xf199fe1a085b5bb134e90d0bfdaf70579fa703ab3db986a6730b44cfd5207b15", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + { + "nonce": 2, + "balance": "0x200000000000000000000000000000000000000000000000000000000000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0xc0c4c8baea3f6acb49b6e1fb9e2adeceeacb0ca2", + "accountKey": "0x9b38091c0e341793f0e755a1ea7b64bfb06455aced31334598fcfd02d1d94616", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806", + "leaf": { + "value": "0xf199fe1a085b5bb134e90d0bfdaf70579fa703ab3db986a6730b44cfd5207b15", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806", + "leaf": { + "value": "0xf199fe1a085b5bb134e90d0bfdaf70579fa703ab3db986a6730b44cfd5207b15", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + null, + null + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x01bae6bf68e9a03fb2bc0615b1bf0d69ce9411ed", + "accountKey": "0x7f53dc37d5a264eb72d8ae1a31c82239a385d9f6df23b81c48e97862d6d92314", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806", + "leaf": { + "value": "0xf199fe1a085b5bb134e90d0bfdaf70579fa703ab3db986a6730b44cfd5207b15", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x1", + "root": "0x06954857b2b6569c7dfe8380f8c7fe72d6b7fefca206b1fe74dc6ffbf97c132e", + "path": [ + { + "value": "0x1b9da0b70b242af37d53f5bda27315b2dbd178f6b4b1e026be43cab8d46b850b", + "sibling": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806" + } + ], + "leaf": { + "value": "0x45c70c4b7345dd1705ed019271dd1d7fbe2a1054ecefaf3fd2a22388a483072e", + "sibling": "0x7f53dc37d5a264eb72d8ae1a31c82239a385d9f6df23b81c48e97862d6d92314" + } + } + ], + "accountUpdate": [ + null, + { + "nonce": 0, + "balance": "0x152d02c7e14af6000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "accountKey": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0x06954857b2b6569c7dfe8380f8c7fe72d6b7fefca206b1fe74dc6ffbf97c132e", + "path": [ + { + "value": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806", + "sibling": "0x1b9da0b70b242af37d53f5bda27315b2dbd178f6b4b1e026be43cab8d46b850b" + } + ], + "leaf": { + "value": "0xf199fe1a085b5bb134e90d0bfdaf70579fa703ab3db986a6730b44cfd5207b15", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0x06954857b2b6569c7dfe8380f8c7fe72d6b7fefca206b1fe74dc6ffbf97c132e", + "path": [ + { + "value": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806", + "sibling": "0x1b9da0b70b242af37d53f5bda27315b2dbd178f6b4b1e026be43cab8d46b850b" + } + ], + "leaf": { + "value": "0xf199fe1a085b5bb134e90d0bfdaf70579fa703ab3db986a6730b44cfd5207b15", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + { + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0xc0c4c8baea3f6acb49b6e1fb9e2adeceeacb0ca2", + "accountKey": "0x9b38091c0e341793f0e755a1ea7b64bfb06455aced31334598fcfd02d1d94616", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0x06954857b2b6569c7dfe8380f8c7fe72d6b7fefca206b1fe74dc6ffbf97c132e", + "path": [ + { + "value": "0x1b9da0b70b242af37d53f5bda27315b2dbd178f6b4b1e026be43cab8d46b850b", + "sibling": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806" + } + ], + "leaf": { + "value": "0x45c70c4b7345dd1705ed019271dd1d7fbe2a1054ecefaf3fd2a22388a483072e", + "sibling": "0x7f53dc37d5a264eb72d8ae1a31c82239a385d9f6df23b81c48e97862d6d92314" + } + }, + { + "pathPart": "0x3", + "root": "0xaf16fd780a8c7616b95b20da69f4ff26e0253238e996f9516445d6d6bf92b725", + "path": [ + { + "value": "0x5bbe97e7e66485b203f9dfea64eb7fa7df06959b12cbde2beba14f8f91133a13", + "sibling": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806" + }, + { + "value": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x794953bb5d8aa00f90383ff435ce2ea58e30e1da1061e69455c38496766ec10f", + "sibling": "0x1b9da0b70b242af37d53f5bda27315b2dbd178f6b4b1e026be43cab8d46b850b" + } + ], + "leaf": { + "value": "0x45c70c4b7345dd1705ed019271dd1d7fbe2a1054ecefaf3fd2a22388a483072e", + "sibling": "0x9b38091c0e341793f0e755a1ea7b64bfb06455aced31334598fcfd02d1d94616" + } + } + ], + "accountUpdate": [ + null, + { + "nonce": 0, + "balance": "0x152d02c7e14af6000000", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + } + ] +} diff --git a/rollup/rollup_sync_service/testdata/blockTrace_03.json b/rollup/rollup_sync_service/testdata/blockTrace_03.json new file mode 100644 index 000000000000..caec0da39e49 --- /dev/null +++ b/rollup/rollup_sync_service/testdata/blockTrace_03.json @@ -0,0 +1,12879 @@ +{ + "withdrawTrieRoot": "0x0000000000000000000000000000000000000000", + "coinbase": { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d683461ce98", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + "header": { + "parentHash": "0xc7b6c7022c8386cdaf6fcd3d4f8d03dce257ae3664a072fdce511ecefce73ad0", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "miner": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x26712be2a2a671df99555f95b601e2e907bd0276db5fb7d3cab35c061b39a91c", + "transactionsRoot": "0x6c4bdf11857e89cf8b34424d31be1db20974460a5b89dcf948adc88e743ebf3e", + "receiptsRoot": "0x3771127daa833dd70db4c01cd854543867176087a16b67154fa8b96a8549e97f", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x2", + "number": "0x3", + "gasLimit": "0x3546c3cbb39e5", + "gasUsed": "0x1197e2", + "timestamp": "0x63807b2d", + "extraData": "0xd983010a0d846765746889676f312e31372e3133856c696e75780000000000000b5467bbc3ca30260309add44eddd3242b6bbac2456e5f65df801113f5d39ad43089a888b7755db442cd6aa2b4a869bc657b219a2daf5927fce87cf47dcad48101", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x1a2c", + "hash": "0x13ddd94de9c585c50c6885d4ef649292c2624ae7c8fc73781ee8785f2564b44c" + }, + "row_consumption": [ + ], + "transactions": [ + { + "type": 2, + "nonce": 2, + "txHash": "0x6b50040f5f14bad253f202b0775d6742131bcaee6b992f05578386f00e53b7e4", + "gas": 1152994, + "gasPrice": "0x3b9b0a17", + "from": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "to": null, + "chainId": "0xcf55", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b50604051620014b2380380620014b2833981810160405260a08110156200003757600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006357600080fd5b9083019060208201858111156200007957600080fd5b82516401000000008111828201881017156200009457600080fd5b82525081516020918201929091019080838360005b83811015620000c3578181015183820152602001620000a9565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b9083019060208201858111156200012b57600080fd5b82516401000000008111828201881017156200014657600080fd5b82525081516020918201929091019080838360005b83811015620001755781810151838201526020016200015b565b50505050905090810190601f168015620001a35780820380516001836020036101000a031916815260200191505b5060405260209081015185519093508592508491620001c8916003918501906200026b565b508051620001de9060049060208401906200026b565b50506005805461ff001960ff1990911660121716905550600680546001600160a01b038088166001600160a01b0319928316179092556007805492871692909116919091179055620002308162000255565b50506005805462010000600160b01b0319163362010000021790555062000307915050565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ae57805160ff1916838001178555620002de565b82800160010185558215620002de579182015b82811115620002de578251825591602001919060010190620002c1565b50620002ec929150620002f0565b5090565b5b80821115620002ec5760008155600101620002f1565b61119b80620003176000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80635c975abb116100a257806395d89b411161007157806395d89b41146103015780639dc29fac14610309578063a457c2d714610335578063a9059cbb14610361578063dd62ed3e1461038d5761010b565b80635c975abb1461029d57806370a08231146102a55780638456cb59146102cb5780638e50817a146102d35761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461023b5780633f4ba83a1461026757806340c10f19146102715761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103bb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610451565b604080519115158252519081900360200190f35b6101d561046e565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610474565b6102256104fb565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561025157600080fd5b506001600160a01b038135169060200135610504565b61026f610552565b005b61026f6004803603604081101561028757600080fd5b506001600160a01b0381351690602001356105a9565b6101b9610654565b6101d5600480360360208110156102bb57600080fd5b50356001600160a01b0316610662565b61026f61067d565b61026f600480360360408110156102e957600080fd5b506001600160a01b03813581169160200135166106d2565b610118610757565b61026f6004803603604081101561031f57600080fd5b506001600160a01b0381351690602001356107b8565b6101b96004803603604081101561034b57600080fd5b506001600160a01b03813516906020013561085f565b6101b96004803603604081101561037757600080fd5b506001600160a01b0381351690602001356108c7565b6101d5600480360360408110156103a357600080fd5b506001600160a01b03813581169160200135166108db565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b5050505050905090565b600061046561045e610906565b848461090a565b50600192915050565b60025490565b60006104818484846109f6565b6104f18461048d610906565b6104ec85604051806060016040528060288152602001611085602891396001600160a01b038a166000908152600160205260408120906104cb610906565b6001600160a01b031681526020810191909152604001600020549190610b51565b61090a565b5060019392505050565b60055460ff1690565b6000610465610511610906565b846104ec8560016000610522610906565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610be8565b6007546001600160a01b0316331461059f576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6105a7610c49565b565b600554610100900460ff16156105f9576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006546001600160a01b03163314610646576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6106508282610ced565b5050565b600554610100900460ff1690565b6001600160a01b031660009081526020819052604090205490565b6007546001600160a01b031633146106ca576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6105a7610ddd565b6005546201000090046001600160a01b03163314610726576040805162461bcd60e51b815260206004820152600c60248201526b6f6e6c7920466163746f727960a01b604482015290519081900360640190fd5b600780546001600160a01b039283166001600160a01b03199182161790915560068054939092169216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104475780601f1061041c57610100808354040283529160200191610447565b600554610100900460ff1615610808576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006546001600160a01b03163314610855576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6106508282610e65565b600061046561086c610906565b846104ec856040518060600160405280602581526020016111176025913960016000610896610906565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610b51565b60006104656108d4610906565b84846109f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661094f5760405162461bcd60e51b81526004018080602001828103825260248152602001806110f36024913960400191505060405180910390fd5b6001600160a01b0382166109945760405162461bcd60e51b815260040180806020018281038252602281526020018061103d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a3b5760405162461bcd60e51b81526004018080602001828103825260258152602001806110ce6025913960400191505060405180910390fd5b6001600160a01b038216610a805760405162461bcd60e51b8152600401808060200182810382526023815260200180610ff86023913960400191505060405180910390fd5b610a8b838383610f61565b610ac88160405180606001604052806026815260200161105f602691396001600160a01b0386166000908152602081905260409020549190610b51565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610af79082610be8565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610be05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ba5578181015183820152602001610b8d565b50505050905090810190601f168015610bd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610c42576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600554610100900460ff16610c9c576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6005805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610cd0610906565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216610d48576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610d5460008383610f61565b600254610d619082610be8565b6002556001600160a01b038216600090815260208190526040902054610d879082610be8565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600554610100900460ff1615610e2d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6005805461ff0019166101001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cd0610906565b6001600160a01b038216610eaa5760405162461bcd60e51b81526004018080602001828103825260218152602001806110ad6021913960400191505060405180910390fd5b610eb682600083610f61565b610ef38160405180606001604052806022815260200161101b602291396001600160a01b0385166000908152602081905260409020549190610b51565b6001600160a01b038316600090815260208190526040902055600254610f199082610fb5565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b610f6c838383610fb0565b610f74610654565b15610fb05760405162461bcd60e51b815260040180806020018281038252602a81526020018061113c602a913960400191505060405180910390fd5b505050565b6000610c4283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b5156fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f45524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a2646970667358221220e96342bec8f6c2bf72815a39998973b64c3bed57770f402e9a7b7eeda0265d4c64736f6c634300060c00330000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b630000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b6300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000095745544820636f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000", + "isCreate": true, + "v": "0x1", + "r": "0x235c1a8d40e8c347890397f1a92e6eadbd6422cf7c210e3e1737f0553c633172", + "s": "0x2f7c0384ddd06970446e74229cd96216da62196dc62395bda52095d44b8a9af7" + } + ], + "storageTrace": { + "rootBefore": "0x25b792bfd6d6456451f996e9383225e026fff469da205bb916768c0a78fd16af", + "rootAfter": "0x26712be2a2a671df99555f95b601e2e907bd0276db5fb7d3cab35c061b39a91c", + "proofs": { + "0x03F8133DD5Ed58838B20AF1296F62F44e69bAa48": [ + "0x0006e87db4b9b3a22a55eaec059b5896ca15c93c227708181cab416887090cf234133a13918f4fa1eb2bdecb129b9506dfa77feb64eadff903b28564e6e797be5b", + "0x00000000000000000000000000000000000000000000000000000000000000000002cf0e006d7e01c8f6a13d46d695bdfd24a7e1a494ad357c11b32ab05713592e", + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x1C5A77d9FA7eF466951B2F01F724BCa3A5820b63": [ + "0x0006e87db4b9b3a22a55eaec059b5896ca15c93c227708181cab416887090cf234133a13918f4fa1eb2bdecb129b9506dfa77feb64eadff903b28564e6e797be5b", + "0x01204920151d7e3cd9d1b5ba09d3ad6ea157c82d1cc425731f209e71a007165a9c04040000000000000000000000000000000000000000000000000000000000000000000201ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4700000000000000000000000000000000000000000000000000000000000000000201c5a77d9fa7ef466951b2f01f724bca3a5820b63000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + }, + "storageProofs": { + "0x03F8133DD5Ed58838B20AF1296F62F44e69bAa48": { + "0x0000000000000000000000000000000000000000000000000000000000000003": [ + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000004": [ + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000005": [ + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000006": [ + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000007": [ + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + } + } + }, + "executionResults": [ + { + "gas": 1152994, + "failed": false, + "returnValue": "608060405234801561001057600080fd5b506004361061010b5760003560e01c80635c975abb116100a257806395d89b411161007157806395d89b41146103015780639dc29fac14610309578063a457c2d714610335578063a9059cbb14610361578063dd62ed3e1461038d5761010b565b80635c975abb1461029d57806370a08231146102a55780638456cb59146102cb5780638e50817a146102d35761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461023b5780633f4ba83a1461026757806340c10f19146102715761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103bb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610451565b604080519115158252519081900360200190f35b6101d561046e565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610474565b6102256104fb565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561025157600080fd5b506001600160a01b038135169060200135610504565b61026f610552565b005b61026f6004803603604081101561028757600080fd5b506001600160a01b0381351690602001356105a9565b6101b9610654565b6101d5600480360360208110156102bb57600080fd5b50356001600160a01b0316610662565b61026f61067d565b61026f600480360360408110156102e957600080fd5b506001600160a01b03813581169160200135166106d2565b610118610757565b61026f6004803603604081101561031f57600080fd5b506001600160a01b0381351690602001356107b8565b6101b96004803603604081101561034b57600080fd5b506001600160a01b03813516906020013561085f565b6101b96004803603604081101561037757600080fd5b506001600160a01b0381351690602001356108c7565b6101d5600480360360408110156103a357600080fd5b506001600160a01b03813581169160200135166108db565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b5050505050905090565b600061046561045e610906565b848461090a565b50600192915050565b60025490565b60006104818484846109f6565b6104f18461048d610906565b6104ec85604051806060016040528060288152602001611085602891396001600160a01b038a166000908152600160205260408120906104cb610906565b6001600160a01b031681526020810191909152604001600020549190610b51565b61090a565b5060019392505050565b60055460ff1690565b6000610465610511610906565b846104ec8560016000610522610906565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610be8565b6007546001600160a01b0316331461059f576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6105a7610c49565b565b600554610100900460ff16156105f9576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006546001600160a01b03163314610646576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6106508282610ced565b5050565b600554610100900460ff1690565b6001600160a01b031660009081526020819052604090205490565b6007546001600160a01b031633146106ca576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6105a7610ddd565b6005546201000090046001600160a01b03163314610726576040805162461bcd60e51b815260206004820152600c60248201526b6f6e6c7920466163746f727960a01b604482015290519081900360640190fd5b600780546001600160a01b039283166001600160a01b03199182161790915560068054939092169216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104475780601f1061041c57610100808354040283529160200191610447565b600554610100900460ff1615610808576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006546001600160a01b03163314610855576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6106508282610e65565b600061046561086c610906565b846104ec856040518060600160405280602581526020016111176025913960016000610896610906565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610b51565b60006104656108d4610906565b84846109f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661094f5760405162461bcd60e51b81526004018080602001828103825260248152602001806110f36024913960400191505060405180910390fd5b6001600160a01b0382166109945760405162461bcd60e51b815260040180806020018281038252602281526020018061103d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a3b5760405162461bcd60e51b81526004018080602001828103825260258152602001806110ce6025913960400191505060405180910390fd5b6001600160a01b038216610a805760405162461bcd60e51b8152600401808060200182810382526023815260200180610ff86023913960400191505060405180910390fd5b610a8b838383610f61565b610ac88160405180606001604052806026815260200161105f602691396001600160a01b0386166000908152602081905260409020549190610b51565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610af79082610be8565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610be05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ba5578181015183820152602001610b8d565b50505050905090810190601f168015610bd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610c42576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600554610100900460ff16610c9c576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6005805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610cd0610906565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216610d48576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610d5460008383610f61565b600254610d619082610be8565b6002556001600160a01b038216600090815260208190526040902054610d879082610be8565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600554610100900460ff1615610e2d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6005805461ff0019166101001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cd0610906565b6001600160a01b038216610eaa5760405162461bcd60e51b81526004018080602001828103825260218152602001806110ad6021913960400191505060405180910390fd5b610eb682600083610f61565b610ef38160405180606001604052806022815260200161101b602291396001600160a01b0385166000908152602081905260409020549190610b51565b6001600160a01b038316600090815260208190526040902055600254610f199082610fb5565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b610f6c838383610fb0565b610f74610654565b15610fb05760405162461bcd60e51b815260040180806020018281038252602a81526020018061113c602a913960400191505060405180910390fd5b505050565b6000610c4283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b5156fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f45524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a2646970667358221220e96342bec8f6c2bf72815a39998973b64c3bed57770f402e9a7b7eeda0265d4c64736f6c634300060c0033", + "from": { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + "accountCreated": { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "accountAfter": [ + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d683461ce98", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d683461ce98", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "byteCode": "0x60806040523480156200001157600080fd5b50604051620014b2380380620014b2833981810160405260a08110156200003757600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006357600080fd5b9083019060208201858111156200007957600080fd5b82516401000000008111828201881017156200009457600080fd5b82525081516020918201929091019080838360005b83811015620000c3578181015183820152602001620000a9565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b9083019060208201858111156200012b57600080fd5b82516401000000008111828201881017156200014657600080fd5b82525081516020918201929091019080838360005b83811015620001755781810151838201526020016200015b565b50505050905090810190601f168015620001a35780820380516001836020036101000a031916815260200191505b5060405260209081015185519093508592508491620001c8916003918501906200026b565b508051620001de9060049060208401906200026b565b50506005805461ff001960ff1990911660121716905550600680546001600160a01b038088166001600160a01b0319928316179092556007805492871692909116919091179055620002308162000255565b50506005805462010000600160b01b0319163362010000021790555062000307915050565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ae57805160ff1916838001178555620002de565b82800160010185558215620002de579182015b82811115620002de578251825591602001919060010190620002c1565b50620002ec929150620002f0565b5090565b5b80821115620002ec5760008155600101620002f1565b61119b80620003176000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80635c975abb116100a257806395d89b411161007157806395d89b41146103015780639dc29fac14610309578063a457c2d714610335578063a9059cbb14610361578063dd62ed3e1461038d5761010b565b80635c975abb1461029d57806370a08231146102a55780638456cb59146102cb5780638e50817a146102d35761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461023b5780633f4ba83a1461026757806340c10f19146102715761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186103bb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b038135169060200135610451565b604080519115158252519081900360200190f35b6101d561046e565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610474565b6102256104fb565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561025157600080fd5b506001600160a01b038135169060200135610504565b61026f610552565b005b61026f6004803603604081101561028757600080fd5b506001600160a01b0381351690602001356105a9565b6101b9610654565b6101d5600480360360208110156102bb57600080fd5b50356001600160a01b0316610662565b61026f61067d565b61026f600480360360408110156102e957600080fd5b506001600160a01b03813581169160200135166106d2565b610118610757565b61026f6004803603604081101561031f57600080fd5b506001600160a01b0381351690602001356107b8565b6101b96004803603604081101561034b57600080fd5b506001600160a01b03813516906020013561085f565b6101b96004803603604081101561037757600080fd5b506001600160a01b0381351690602001356108c7565b6101d5600480360360408110156103a357600080fd5b506001600160a01b03813581169160200135166108db565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b5050505050905090565b600061046561045e610906565b848461090a565b50600192915050565b60025490565b60006104818484846109f6565b6104f18461048d610906565b6104ec85604051806060016040528060288152602001611085602891396001600160a01b038a166000908152600160205260408120906104cb610906565b6001600160a01b031681526020810191909152604001600020549190610b51565b61090a565b5060019392505050565b60055460ff1690565b6000610465610511610906565b846104ec8560016000610522610906565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610be8565b6007546001600160a01b0316331461059f576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6105a7610c49565b565b600554610100900460ff16156105f9576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006546001600160a01b03163314610646576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6106508282610ced565b5050565b600554610100900460ff1690565b6001600160a01b031660009081526020819052604090205490565b6007546001600160a01b031633146106ca576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6105a7610ddd565b6005546201000090046001600160a01b03163314610726576040805162461bcd60e51b815260206004820152600c60248201526b6f6e6c7920466163746f727960a01b604482015290519081900360640190fd5b600780546001600160a01b039283166001600160a01b03199182161790915560068054939092169216919091179055565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104475780601f1061041c57610100808354040283529160200191610447565b600554610100900460ff1615610808576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006546001600160a01b03163314610855576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6106508282610e65565b600061046561086c610906565b846104ec856040518060600160405280602581526020016111176025913960016000610896610906565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610b51565b60006104656108d4610906565b84846109f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661094f5760405162461bcd60e51b81526004018080602001828103825260248152602001806110f36024913960400191505060405180910390fd5b6001600160a01b0382166109945760405162461bcd60e51b815260040180806020018281038252602281526020018061103d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a3b5760405162461bcd60e51b81526004018080602001828103825260258152602001806110ce6025913960400191505060405180910390fd5b6001600160a01b038216610a805760405162461bcd60e51b8152600401808060200182810382526023815260200180610ff86023913960400191505060405180910390fd5b610a8b838383610f61565b610ac88160405180606001604052806026815260200161105f602691396001600160a01b0386166000908152602081905260409020549190610b51565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610af79082610be8565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610be05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ba5578181015183820152602001610b8d565b50505050905090810190601f168015610bd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610c42576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600554610100900460ff16610c9c576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6005805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610cd0610906565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216610d48576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610d5460008383610f61565b600254610d619082610be8565b6002556001600160a01b038216600090815260208190526040902054610d879082610be8565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600554610100900460ff1615610e2d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6005805461ff0019166101001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cd0610906565b6001600160a01b038216610eaa5760405162461bcd60e51b81526004018080602001828103825260218152602001806110ad6021913960400191505060405180910390fd5b610eb682600083610f61565b610ef38160405180606001604052806022815260200161101b602291396001600160a01b0385166000908152602081905260409020549190610b51565b6001600160a01b038316600090815260208190526040902055600254610f199082610fb5565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b610f6c838383610fb0565b610f74610654565b15610fb05760405162461bcd60e51b815260040180806020018281038252602a81526020018061113c602a913960400191505060405180910390fd5b505050565b6000610c4283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b5156fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f45524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a2646970667358221220e96342bec8f6c2bf72815a39998973b64c3bed57770f402e9a7b7eeda0265d4c64736f6c634300060c00330000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b630000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b6300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000095745544820636f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 1015274, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 1015271, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 1015268, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "CALLVALUE", + "gas": 1015256, + "gasCost": 2, + "depth": 1 + }, + { + "pc": 6, + "op": "DUP1", + "gas": 1015254, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 7, + "op": "ISZERO", + "gas": 1015251, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x0" + ] + }, + { + "pc": 8, + "op": "PUSH3", + "gas": 1015248, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0", + "0x1" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 1015245, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x1", + "0x11" + ] + }, + { + "pc": 17, + "op": "JUMPDEST", + "gas": 1015235, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 18, + "op": "POP", + "gas": 1015234, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 19, + "op": "PUSH1", + "gas": 1015232, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 21, + "op": "MLOAD", + "gas": 1015229, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x40" + ] + }, + { + "pc": 22, + "op": "PUSH3", + "gas": 1015226, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 26, + "op": "CODESIZE", + "gas": 1015223, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x80", + "0x14b2" + ], + "extraData": { + "codeList": [ + "0x" + ] + } + }, + { + "pc": 27, + "op": "SUB", + "gas": 1015221, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x14b2", + "0x15d2" + ] + }, + { + "pc": 28, + "op": "DUP1", + "gas": 1015218, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120" + ] + }, + { + "pc": 29, + "op": "PUSH3", + "gas": 1015215, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x120" + ] + }, + { + "pc": 33, + "op": "DUP4", + "gas": 1015212, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x120", + "0x14b2" + ] + }, + { + "pc": 34, + "op": "CODECOPY", + "gas": 1015209, + "gasCost": 60, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x120", + "0x14b2", + "0x80" + ], + "extraData": { + "codeList": [ + "0x" + ] + } + }, + { + "pc": 35, + "op": "DUP2", + "gas": 1015149, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120" + ] + }, + { + "pc": 36, + "op": "DUP2", + "gas": 1015146, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x80" + ] + }, + { + "pc": 37, + "op": "ADD", + "gas": 1015143, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x80", + "0x120" + ] + }, + { + "pc": 38, + "op": "PUSH1", + "gas": 1015140, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1a0" + ] + }, + { + "pc": 40, + "op": "MSTORE", + "gas": 1015137, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1a0", + "0x40" + ] + }, + { + "pc": 41, + "op": "PUSH1", + "gas": 1015134, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120" + ] + }, + { + "pc": 43, + "op": "DUP2", + "gas": 1015131, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0xa0" + ] + }, + { + "pc": 44, + "op": "LT", + "gas": 1015128, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0xa0", + "0x120" + ] + }, + { + "pc": 45, + "op": "ISZERO", + "gas": 1015125, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x0" + ] + }, + { + "pc": 46, + "op": "PUSH3", + "gas": 1015122, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1" + ] + }, + { + "pc": 50, + "op": "JUMPI", + "gas": 1015119, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1", + "0x37" + ] + }, + { + "pc": 55, + "op": "JUMPDEST", + "gas": 1015109, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x80", + "0x120" + ] + }, + { + "pc": 56, + "op": "DUP2", + "gas": 1015108, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120" + ] + }, + { + "pc": 57, + "op": "MLOAD", + "gas": 1015105, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x80" + ] + }, + { + "pc": 58, + "op": "PUSH1", + "gas": 1015102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 60, + "op": "DUP4", + "gas": 1015099, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x20" + ] + }, + { + "pc": 61, + "op": "ADD", + "gas": 1015096, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x20", + "0x80" + ] + }, + { + "pc": 62, + "op": "MLOAD", + "gas": 1015093, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xa0" + ] + }, + { + "pc": 63, + "op": "PUSH1", + "gas": 1015090, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 65, + "op": "DUP1", + "gas": 1015087, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x40" + ] + }, + { + "pc": 66, + "op": "DUP6", + "gas": 1015084, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x40", + "0x40" + ] + }, + { + "pc": 67, + "op": "ADD", + "gas": 1015081, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x40", + "0x40", + "0x80" + ] + }, + { + "pc": 68, + "op": "DUP1", + "gas": 1015078, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x40", + "0xc0" + ] + }, + { + "pc": 69, + "op": "MLOAD", + "gas": 1015075, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x40", + "0xc0", + "0xc0" + ] + }, + { + "pc": 70, + "op": "SWAP2", + "gas": 1015072, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x40", + "0xc0", + "0xa0" + ] + }, + { + "pc": 71, + "op": "MLOAD", + "gas": 1015069, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xa0", + "0xc0", + "0x40" + ] + }, + { + "pc": 72, + "op": "SWAP4", + "gas": 1015066, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xa0", + "0xc0", + "0x1a0" + ] + }, + { + "pc": 73, + "op": "SWAP6", + "gas": 1015063, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80", + "0x120", + "0x1a0", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xa0", + "0xc0", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 74, + "op": "SWAP3", + "gas": 1015060, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x120", + "0x1a0", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xa0", + "0xc0", + "0x80" + ] + }, + { + "pc": 75, + "op": "SWAP5", + "gas": 1015057, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x120", + "0x1a0", + "0x80", + "0xa0", + "0xc0", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 76, + "op": "DUP4", + "gas": 1015054, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x80", + "0xa0", + "0xc0", + "0x120" + ] + }, + { + "pc": 77, + "op": "ADD", + "gas": 1015051, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x80", + "0xa0", + "0xc0", + "0x120", + "0x80" + ] + }, + { + "pc": 78, + "op": "SWAP3", + "gas": 1015048, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x80", + "0xa0", + "0xc0", + "0x1a0" + ] + }, + { + "pc": 79, + "op": "SWAP2", + "gas": 1015045, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0xa0", + "0xc0", + "0x80" + ] + }, + { + "pc": 80, + "op": "DUP5", + "gas": 1015042, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0" + ] + }, + { + "pc": 81, + "op": "PUSH5", + "gas": 1015039, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0" + ] + }, + { + "pc": 87, + "op": "DUP3", + "gas": 1015036, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0", + "0x100000000" + ] + }, + { + "pc": 88, + "op": "GT", + "gas": 1015033, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0", + "0x100000000", + "0xa0" + ] + }, + { + "pc": 89, + "op": "ISZERO", + "gas": 1015030, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0", + "0x0" + ] + }, + { + "pc": 90, + "op": "PUSH3", + "gas": 1015027, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0", + "0x1" + ] + }, + { + "pc": 94, + "op": "JUMPI", + "gas": 1015024, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0", + "0x1", + "0x63" + ] + }, + { + "pc": 99, + "op": "JUMPDEST", + "gas": 1015014, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0" + ] + }, + { + "pc": 100, + "op": "SWAP1", + "gas": 1015013, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0xa0", + "0x1a0" + ] + }, + { + "pc": 101, + "op": "DUP4", + "gas": 1015010, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1a0", + "0xa0" + ] + }, + { + "pc": 102, + "op": "ADD", + "gas": 1015007, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1a0", + "0xa0", + "0x80" + ] + }, + { + "pc": 103, + "op": "SWAP1", + "gas": 1015004, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1a0", + "0x120" + ] + }, + { + "pc": 104, + "op": "PUSH1", + "gas": 1015001, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0" + ] + }, + { + "pc": 106, + "op": "DUP3", + "gas": 1014998, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x20" + ] + }, + { + "pc": 107, + "op": "ADD", + "gas": 1014995, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x20", + "0x120" + ] + }, + { + "pc": 108, + "op": "DUP6", + "gas": 1014992, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140" + ] + }, + { + "pc": 109, + "op": "DUP2", + "gas": 1014989, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x1a0" + ] + }, + { + "pc": 110, + "op": "GT", + "gas": 1014986, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x1a0", + "0x140" + ] + }, + { + "pc": 111, + "op": "ISZERO", + "gas": 1014983, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x0" + ] + }, + { + "pc": 112, + "op": "PUSH3", + "gas": 1014980, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x1" + ] + }, + { + "pc": 116, + "op": "JUMPI", + "gas": 1014977, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x1", + "0x79" + ] + }, + { + "pc": 121, + "op": "JUMPDEST", + "gas": 1014967, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140" + ] + }, + { + "pc": 122, + "op": "DUP3", + "gas": 1014966, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140" + ] + }, + { + "pc": 123, + "op": "MLOAD", + "gas": 1014963, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x120" + ] + }, + { + "pc": 124, + "op": "PUSH5", + "gas": 1014960, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9" + ] + }, + { + "pc": 130, + "op": "DUP2", + "gas": 1014957, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x100000000" + ] + }, + { + "pc": 131, + "op": "GT", + "gas": 1014954, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x100000000", + "0x9" + ] + }, + { + "pc": 132, + "op": "DUP3", + "gas": 1014951, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x0" + ] + }, + { + "pc": 133, + "op": "DUP3", + "gas": 1014948, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x0", + "0x140" + ] + }, + { + "pc": 134, + "op": "ADD", + "gas": 1014945, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x0", + "0x140", + "0x9" + ] + }, + { + "pc": 135, + "op": "DUP9", + "gas": 1014942, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x0", + "0x149" + ] + }, + { + "pc": 136, + "op": "LT", + "gas": 1014939, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x0", + "0x149", + "0x1a0" + ] + }, + { + "pc": 137, + "op": "OR", + "gas": 1014936, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x0", + "0x0" + ] + }, + { + "pc": 138, + "op": "ISZERO", + "gas": 1014933, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x0" + ] + }, + { + "pc": 139, + "op": "PUSH3", + "gas": 1014930, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x1" + ] + }, + { + "pc": 143, + "op": "JUMPI", + "gas": 1014927, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x1", + "0x94" + ] + }, + { + "pc": 148, + "op": "JUMPDEST", + "gas": 1014917, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9" + ] + }, + { + "pc": 149, + "op": "DUP3", + "gas": 1014916, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9" + ] + }, + { + "pc": 150, + "op": "MSTORE", + "gas": 1014913, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140", + "0x9", + "0x1a0" + ] + }, + { + "pc": 151, + "op": "POP", + "gas": 1014907, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x140" + ] + }, + { + "pc": 152, + "op": "DUP2", + "gas": 1014905, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0" + ] + }, + { + "pc": 153, + "op": "MLOAD", + "gas": 1014902, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x120" + ] + }, + { + "pc": 154, + "op": "PUSH1", + "gas": 1014899, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x9" + ] + }, + { + "pc": 156, + "op": "SWAP2", + "gas": 1014896, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x1a0", + "0x9", + "0x20" + ] + }, + { + "pc": 157, + "op": "DUP3", + "gas": 1014893, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x20", + "0x9", + "0x1a0" + ] + }, + { + "pc": 158, + "op": "ADD", + "gas": 1014890, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x20", + "0x9", + "0x1a0", + "0x20" + ] + }, + { + "pc": 159, + "op": "SWAP3", + "gas": 1014887, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x120", + "0x20", + "0x9", + "0x1c0" + ] + }, + { + "pc": 160, + "op": "SWAP1", + "gas": 1014884, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x20", + "0x9", + "0x120" + ] + }, + { + "pc": 161, + "op": "SWAP2", + "gas": 1014881, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x20", + "0x120", + "0x9" + ] + }, + { + "pc": 162, + "op": "ADD", + "gas": 1014878, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x9", + "0x120", + "0x20" + ] + }, + { + "pc": 163, + "op": "SWAP1", + "gas": 1014875, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x9", + "0x140" + ] + }, + { + "pc": 164, + "op": "DUP1", + "gas": 1014872, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9" + ] + }, + { + "pc": 165, + "op": "DUP4", + "gas": 1014869, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9" + ] + }, + { + "pc": 166, + "op": "DUP4", + "gas": 1014866, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0" + ] + }, + { + "pc": 167, + "op": "PUSH1", + "gas": 1014863, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140" + ] + }, + { + "pc": 169, + "op": "JUMPDEST", + "gas": 1014860, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0" + ] + }, + { + "pc": 170, + "op": "DUP4", + "gas": 1014859, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0" + ] + }, + { + "pc": 171, + "op": "DUP2", + "gas": 1014856, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x9" + ] + }, + { + "pc": 172, + "op": "LT", + "gas": 1014853, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x9", + "0x0" + ] + }, + { + "pc": 173, + "op": "ISZERO", + "gas": 1014850, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x1" + ] + }, + { + "pc": 174, + "op": "PUSH3", + "gas": 1014847, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x0" + ] + }, + { + "pc": 178, + "op": "JUMPI", + "gas": 1014844, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x0", + "0xc3" + ] + }, + { + "pc": 179, + "op": "DUP2", + "gas": 1014834, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0" + ] + }, + { + "pc": 180, + "op": "DUP2", + "gas": 1014831, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x140" + ] + }, + { + "pc": 181, + "op": "ADD", + "gas": 1014828, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x140", + "0x0" + ] + }, + { + "pc": 182, + "op": "MLOAD", + "gas": 1014825, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x140" + ] + }, + { + "pc": 183, + "op": "DUP4", + "gas": 1014822, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 184, + "op": "DUP3", + "gas": 1014819, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1c0" + ] + }, + { + "pc": 185, + "op": "ADD", + "gas": 1014816, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1c0", + "0x0" + ] + }, + { + "pc": 186, + "op": "MSTORE", + "gas": 1014813, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1c0" + ] + }, + { + "pc": 187, + "op": "PUSH1", + "gas": 1014807, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0" + ] + }, + { + "pc": 189, + "op": "ADD", + "gas": 1014804, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x0", + "0x20" + ] + }, + { + "pc": 190, + "op": "PUSH3", + "gas": 1014801, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20" + ] + }, + { + "pc": 194, + "op": "JUMP", + "gas": 1014798, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20", + "0xa9" + ] + }, + { + "pc": 169, + "op": "JUMPDEST", + "gas": 1014790, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20" + ] + }, + { + "pc": 170, + "op": "DUP4", + "gas": 1014789, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20" + ] + }, + { + "pc": 171, + "op": "DUP2", + "gas": 1014786, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20", + "0x9" + ] + }, + { + "pc": 172, + "op": "LT", + "gas": 1014783, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20", + "0x9", + "0x20" + ] + }, + { + "pc": 173, + "op": "ISZERO", + "gas": 1014780, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20", + "0x0" + ] + }, + { + "pc": 174, + "op": "PUSH3", + "gas": 1014777, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20", + "0x1" + ] + }, + { + "pc": 178, + "op": "JUMPI", + "gas": 1014774, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20", + "0x1", + "0xc3" + ] + }, + { + "pc": 195, + "op": "JUMPDEST", + "gas": 1014764, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20" + ] + }, + { + "pc": 196, + "op": "POP", + "gas": 1014763, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140", + "0x20" + ] + }, + { + "pc": 197, + "op": "POP", + "gas": 1014761, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0", + "0x140" + ] + }, + { + "pc": 198, + "op": "POP", + "gas": 1014759, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9", + "0x1c0" + ] + }, + { + "pc": 199, + "op": "POP", + "gas": 1014757, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9", + "0x9" + ] + }, + { + "pc": 200, + "op": "SWAP1", + "gas": 1014755, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x140", + "0x9" + ] + }, + { + "pc": 201, + "op": "POP", + "gas": 1014752, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x9", + "0x140" + ] + }, + { + "pc": 202, + "op": "SWAP1", + "gas": 1014750, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c0", + "0x9" + ] + }, + { + "pc": 203, + "op": "DUP2", + "gas": 1014747, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x9", + "0x1c0" + ] + }, + { + "pc": 204, + "op": "ADD", + "gas": 1014744, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x9", + "0x1c0", + "0x9" + ] + }, + { + "pc": 205, + "op": "SWAP1", + "gas": 1014741, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x9", + "0x1c9" + ] + }, + { + "pc": 206, + "op": "PUSH1", + "gas": 1014738, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9" + ] + }, + { + "pc": 208, + "op": "AND", + "gas": 1014735, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1f" + ] + }, + { + "pc": 209, + "op": "DUP1", + "gas": 1014732, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9" + ] + }, + { + "pc": 210, + "op": "ISZERO", + "gas": 1014729, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x9" + ] + }, + { + "pc": 211, + "op": "PUSH3", + "gas": 1014726, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x0" + ] + }, + { + "pc": 215, + "op": "JUMPI", + "gas": 1014723, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x0", + "0xf1" + ] + }, + { + "pc": 216, + "op": "DUP1", + "gas": 1014713, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9" + ] + }, + { + "pc": 217, + "op": "DUP3", + "gas": 1014710, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x9" + ] + }, + { + "pc": 218, + "op": "SUB", + "gas": 1014707, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x9", + "0x1c9" + ] + }, + { + "pc": 219, + "op": "DUP1", + "gas": 1014704, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0" + ] + }, + { + "pc": 220, + "op": "MLOAD", + "gas": 1014701, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x1c0" + ] + }, + { + "pc": 221, + "op": "PUSH1", + "gas": 1014698, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 223, + "op": "DUP4", + "gas": 1014695, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1" + ] + }, + { + "pc": 224, + "op": "PUSH1", + "gas": 1014692, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1", + "0x9" + ] + }, + { + "pc": 226, + "op": "SUB", + "gas": 1014689, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1", + "0x9", + "0x20" + ] + }, + { + "pc": 227, + "op": "PUSH2", + "gas": 1014686, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1", + "0x17" + ] + }, + { + "pc": 230, + "op": "EXP", + "gas": 1014683, + "gasCost": 60, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1", + "0x17", + "0x100" + ] + }, + { + "pc": 231, + "op": "SUB", + "gas": 1014623, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1", + "0x10000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 232, + "op": "NOT", + "gas": 1014620, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 233, + "op": "AND", + "gas": 1014617, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0xffffffffffffffffff0000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 234, + "op": "DUP2", + "gas": 1014614, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 235, + "op": "MSTORE", + "gas": 1014611, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x1c0" + ] + }, + { + "pc": 236, + "op": "PUSH1", + "gas": 1014608, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0" + ] + }, + { + "pc": 238, + "op": "ADD", + "gas": 1014605, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1c0", + "0x20" + ] + }, + { + "pc": 239, + "op": "SWAP2", + "gas": 1014602, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1c9", + "0x9", + "0x1e0" + ] + }, + { + "pc": 240, + "op": "POP", + "gas": 1014599, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1e0", + "0x9", + "0x1c9" + ] + }, + { + "pc": 241, + "op": "JUMPDEST", + "gas": 1014597, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1e0", + "0x9" + ] + }, + { + "pc": 242, + "op": "POP", + "gas": 1014596, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1e0", + "0x9" + ] + }, + { + "pc": 243, + "op": "PUSH1", + "gas": 1014594, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1e0" + ] + }, + { + "pc": 245, + "op": "MSTORE", + "gas": 1014591, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x1e0", + "0x40" + ] + }, + { + "pc": 246, + "op": "PUSH1", + "gas": 1014588, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0" + ] + }, + { + "pc": 248, + "op": "ADD", + "gas": 1014585, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xc0", + "0x20" + ] + }, + { + "pc": 249, + "op": "DUP1", + "gas": 1014582, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xe0" + ] + }, + { + "pc": 250, + "op": "MLOAD", + "gas": 1014579, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xe0", + "0xe0" + ] + }, + { + "pc": 251, + "op": "PUSH1", + "gas": 1014576, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xe0", + "0xe0" + ] + }, + { + "pc": 253, + "op": "MLOAD", + "gas": 1014573, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x40" + ] + }, + { + "pc": 254, + "op": "SWAP4", + "gas": 1014570, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0" + ] + }, + { + "pc": 255, + "op": "SWAP3", + "gas": 1014567, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x80", + "0xe0", + "0xe0", + "0x1a0" + ] + }, + { + "pc": 256, + "op": "SWAP2", + "gas": 1014564, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0xe0", + "0xe0", + "0x80" + ] + }, + { + "pc": 257, + "op": "SWAP1", + "gas": 1014561, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0" + ] + }, + { + "pc": 258, + "op": "DUP5", + "gas": 1014558, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0" + ] + }, + { + "pc": 259, + "op": "PUSH5", + "gas": 1014555, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0" + ] + }, + { + "pc": 265, + "op": "DUP3", + "gas": 1014552, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0", + "0x100000000" + ] + }, + { + "pc": 266, + "op": "GT", + "gas": 1014549, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0", + "0x100000000", + "0xe0" + ] + }, + { + "pc": 267, + "op": "ISZERO", + "gas": 1014546, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0", + "0x0" + ] + }, + { + "pc": 268, + "op": "PUSH3", + "gas": 1014543, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0", + "0x1" + ] + }, + { + "pc": 272, + "op": "JUMPI", + "gas": 1014540, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0", + "0x1", + "0x115" + ] + }, + { + "pc": 277, + "op": "JUMPDEST", + "gas": 1014530, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0" + ] + }, + { + "pc": 278, + "op": "SWAP1", + "gas": 1014529, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0xe0", + "0x1e0" + ] + }, + { + "pc": 279, + "op": "DUP4", + "gas": 1014526, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x1e0", + "0xe0" + ] + }, + { + "pc": 280, + "op": "ADD", + "gas": 1014523, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x1e0", + "0xe0", + "0x80" + ] + }, + { + "pc": 281, + "op": "SWAP1", + "gas": 1014520, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x1e0", + "0x160" + ] + }, + { + "pc": 282, + "op": "PUSH1", + "gas": 1014517, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0" + ] + }, + { + "pc": 284, + "op": "DUP3", + "gas": 1014514, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x20" + ] + }, + { + "pc": 285, + "op": "ADD", + "gas": 1014511, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x20", + "0x160" + ] + }, + { + "pc": 286, + "op": "DUP6", + "gas": 1014508, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180" + ] + }, + { + "pc": 287, + "op": "DUP2", + "gas": 1014505, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x1a0" + ] + }, + { + "pc": 288, + "op": "GT", + "gas": 1014502, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x1a0", + "0x180" + ] + }, + { + "pc": 289, + "op": "ISZERO", + "gas": 1014499, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x0" + ] + }, + { + "pc": 290, + "op": "PUSH3", + "gas": 1014496, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x1" + ] + }, + { + "pc": 294, + "op": "JUMPI", + "gas": 1014493, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x1", + "0x12b" + ] + }, + { + "pc": 299, + "op": "JUMPDEST", + "gas": 1014483, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180" + ] + }, + { + "pc": 300, + "op": "DUP3", + "gas": 1014482, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180" + ] + }, + { + "pc": 301, + "op": "MLOAD", + "gas": 1014479, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x160" + ] + }, + { + "pc": 302, + "op": "PUSH5", + "gas": 1014476, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4" + ] + }, + { + "pc": 308, + "op": "DUP2", + "gas": 1014473, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x100000000" + ] + }, + { + "pc": 309, + "op": "GT", + "gas": 1014470, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x100000000", + "0x4" + ] + }, + { + "pc": 310, + "op": "DUP3", + "gas": 1014467, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x0" + ] + }, + { + "pc": 311, + "op": "DUP3", + "gas": 1014464, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x0", + "0x180" + ] + }, + { + "pc": 312, + "op": "ADD", + "gas": 1014461, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x0", + "0x180", + "0x4" + ] + }, + { + "pc": 313, + "op": "DUP9", + "gas": 1014458, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x0", + "0x184" + ] + }, + { + "pc": 314, + "op": "LT", + "gas": 1014455, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x0", + "0x184", + "0x1a0" + ] + }, + { + "pc": 315, + "op": "OR", + "gas": 1014452, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x0", + "0x0" + ] + }, + { + "pc": 316, + "op": "ISZERO", + "gas": 1014449, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x0" + ] + }, + { + "pc": 317, + "op": "PUSH3", + "gas": 1014446, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x1" + ] + }, + { + "pc": 321, + "op": "JUMPI", + "gas": 1014443, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x1", + "0x146" + ] + }, + { + "pc": 326, + "op": "JUMPDEST", + "gas": 1014433, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4" + ] + }, + { + "pc": 327, + "op": "DUP3", + "gas": 1014432, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4" + ] + }, + { + "pc": 328, + "op": "MSTORE", + "gas": 1014429, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180", + "0x4", + "0x1e0" + ] + }, + { + "pc": 329, + "op": "POP", + "gas": 1014423, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x180" + ] + }, + { + "pc": 330, + "op": "DUP2", + "gas": 1014421, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0" + ] + }, + { + "pc": 331, + "op": "MLOAD", + "gas": 1014418, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x160" + ] + }, + { + "pc": 332, + "op": "PUSH1", + "gas": 1014415, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x4" + ] + }, + { + "pc": 334, + "op": "SWAP2", + "gas": 1014412, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x1e0", + "0x4", + "0x20" + ] + }, + { + "pc": 335, + "op": "DUP3", + "gas": 1014409, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x20", + "0x4", + "0x1e0" + ] + }, + { + "pc": 336, + "op": "ADD", + "gas": 1014406, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x20", + "0x4", + "0x1e0", + "0x20" + ] + }, + { + "pc": 337, + "op": "SWAP3", + "gas": 1014403, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x160", + "0x20", + "0x4", + "0x200" + ] + }, + { + "pc": 338, + "op": "SWAP1", + "gas": 1014400, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x20", + "0x4", + "0x160" + ] + }, + { + "pc": 339, + "op": "SWAP2", + "gas": 1014397, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x20", + "0x160", + "0x4" + ] + }, + { + "pc": 340, + "op": "ADD", + "gas": 1014394, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x4", + "0x160", + "0x20" + ] + }, + { + "pc": 341, + "op": "SWAP1", + "gas": 1014391, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x4", + "0x180" + ] + }, + { + "pc": 342, + "op": "DUP1", + "gas": 1014388, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4" + ] + }, + { + "pc": 343, + "op": "DUP4", + "gas": 1014385, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4" + ] + }, + { + "pc": 344, + "op": "DUP4", + "gas": 1014382, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200" + ] + }, + { + "pc": 345, + "op": "PUSH1", + "gas": 1014379, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180" + ] + }, + { + "pc": 347, + "op": "JUMPDEST", + "gas": 1014376, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0" + ] + }, + { + "pc": 348, + "op": "DUP4", + "gas": 1014375, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0" + ] + }, + { + "pc": 349, + "op": "DUP2", + "gas": 1014372, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x4" + ] + }, + { + "pc": 350, + "op": "LT", + "gas": 1014369, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x4", + "0x0" + ] + }, + { + "pc": 351, + "op": "ISZERO", + "gas": 1014366, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x1" + ] + }, + { + "pc": 352, + "op": "PUSH3", + "gas": 1014363, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x0" + ] + }, + { + "pc": 356, + "op": "JUMPI", + "gas": 1014360, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x0", + "0x175" + ] + }, + { + "pc": 357, + "op": "DUP2", + "gas": 1014350, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0" + ] + }, + { + "pc": 358, + "op": "DUP2", + "gas": 1014347, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x180" + ] + }, + { + "pc": 359, + "op": "ADD", + "gas": 1014344, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x180", + "0x0" + ] + }, + { + "pc": 360, + "op": "MLOAD", + "gas": 1014341, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x180" + ] + }, + { + "pc": 361, + "op": "DUP4", + "gas": 1014338, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x5745544800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 362, + "op": "DUP3", + "gas": 1014335, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x200" + ] + }, + { + "pc": 363, + "op": "ADD", + "gas": 1014332, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x200", + "0x0" + ] + }, + { + "pc": 364, + "op": "MSTORE", + "gas": 1014329, + "gasCost": 6, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x200" + ] + }, + { + "pc": 365, + "op": "PUSH1", + "gas": 1014323, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0" + ] + }, + { + "pc": 367, + "op": "ADD", + "gas": 1014320, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x0", + "0x20" + ] + }, + { + "pc": 368, + "op": "PUSH3", + "gas": 1014317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20" + ] + }, + { + "pc": 372, + "op": "JUMP", + "gas": 1014314, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20", + "0x15b" + ] + }, + { + "pc": 347, + "op": "JUMPDEST", + "gas": 1014306, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20" + ] + }, + { + "pc": 348, + "op": "DUP4", + "gas": 1014305, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20" + ] + }, + { + "pc": 349, + "op": "DUP2", + "gas": 1014302, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20", + "0x4" + ] + }, + { + "pc": 350, + "op": "LT", + "gas": 1014299, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20", + "0x4", + "0x20" + ] + }, + { + "pc": 351, + "op": "ISZERO", + "gas": 1014296, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20", + "0x0" + ] + }, + { + "pc": 352, + "op": "PUSH3", + "gas": 1014293, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20", + "0x1" + ] + }, + { + "pc": 356, + "op": "JUMPI", + "gas": 1014290, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20", + "0x1", + "0x175" + ] + }, + { + "pc": 373, + "op": "JUMPDEST", + "gas": 1014280, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20" + ] + }, + { + "pc": 374, + "op": "POP", + "gas": 1014279, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180", + "0x20" + ] + }, + { + "pc": 375, + "op": "POP", + "gas": 1014277, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200", + "0x180" + ] + }, + { + "pc": 376, + "op": "POP", + "gas": 1014275, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4", + "0x200" + ] + }, + { + "pc": 377, + "op": "POP", + "gas": 1014273, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4", + "0x4" + ] + }, + { + "pc": 378, + "op": "SWAP1", + "gas": 1014271, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x180", + "0x4" + ] + }, + { + "pc": 379, + "op": "POP", + "gas": 1014268, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x4", + "0x180" + ] + }, + { + "pc": 380, + "op": "SWAP1", + "gas": 1014266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x200", + "0x4" + ] + }, + { + "pc": 381, + "op": "DUP2", + "gas": 1014263, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x4", + "0x200" + ] + }, + { + "pc": 382, + "op": "ADD", + "gas": 1014260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x4", + "0x200", + "0x4" + ] + }, + { + "pc": 383, + "op": "SWAP1", + "gas": 1014257, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x4", + "0x204" + ] + }, + { + "pc": 384, + "op": "PUSH1", + "gas": 1014254, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4" + ] + }, + { + "pc": 386, + "op": "AND", + "gas": 1014251, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x1f" + ] + }, + { + "pc": 387, + "op": "DUP1", + "gas": 1014248, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4" + ] + }, + { + "pc": 388, + "op": "ISZERO", + "gas": 1014245, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x4" + ] + }, + { + "pc": 389, + "op": "PUSH3", + "gas": 1014242, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x0" + ] + }, + { + "pc": 393, + "op": "JUMPI", + "gas": 1014239, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x0", + "0x1a3" + ] + }, + { + "pc": 394, + "op": "DUP1", + "gas": 1014229, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4" + ] + }, + { + "pc": 395, + "op": "DUP3", + "gas": 1014226, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x4" + ] + }, + { + "pc": 396, + "op": "SUB", + "gas": 1014223, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x4", + "0x204" + ] + }, + { + "pc": 397, + "op": "DUP1", + "gas": 1014220, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200" + ] + }, + { + "pc": 398, + "op": "MLOAD", + "gas": 1014217, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x200" + ] + }, + { + "pc": 399, + "op": "PUSH1", + "gas": 1014214, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 401, + "op": "DUP4", + "gas": 1014211, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x1" + ] + }, + { + "pc": 402, + "op": "PUSH1", + "gas": 1014208, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x1", + "0x4" + ] + }, + { + "pc": 404, + "op": "SUB", + "gas": 1014205, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x1", + "0x4", + "0x20" + ] + }, + { + "pc": 405, + "op": "PUSH2", + "gas": 1014202, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x1", + "0x1c" + ] + }, + { + "pc": 408, + "op": "EXP", + "gas": 1014199, + "gasCost": 60, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x1", + "0x1c", + "0x100" + ] + }, + { + "pc": 409, + "op": "SUB", + "gas": 1014139, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x1", + "0x100000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 410, + "op": "NOT", + "gas": 1014136, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 411, + "op": "AND", + "gas": 1014133, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0xffffffff00000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 412, + "op": "DUP2", + "gas": 1014130, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 413, + "op": "MSTORE", + "gas": 1014127, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x200" + ] + }, + { + "pc": 414, + "op": "PUSH1", + "gas": 1014124, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200" + ] + }, + { + "pc": 416, + "op": "ADD", + "gas": 1014121, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x200", + "0x20" + ] + }, + { + "pc": 417, + "op": "SWAP2", + "gas": 1014118, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x204", + "0x4", + "0x220" + ] + }, + { + "pc": 418, + "op": "POP", + "gas": 1014115, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x220", + "0x4", + "0x204" + ] + }, + { + "pc": 419, + "op": "JUMPDEST", + "gas": 1014113, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x220", + "0x4" + ] + }, + { + "pc": 420, + "op": "POP", + "gas": 1014112, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x220", + "0x4" + ] + }, + { + "pc": 421, + "op": "PUSH1", + "gas": 1014110, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x220" + ] + }, + { + "pc": 423, + "op": "MSTORE", + "gas": 1014107, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x220", + "0x40" + ] + }, + { + "pc": 424, + "op": "PUSH1", + "gas": 1014104, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0" + ] + }, + { + "pc": 426, + "op": "SWAP1", + "gas": 1014101, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0xe0", + "0x20" + ] + }, + { + "pc": 427, + "op": "DUP2", + "gas": 1014098, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0x20", + "0xe0" + ] + }, + { + "pc": 428, + "op": "ADD", + "gas": 1014095, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0x20", + "0xe0", + "0x20" + ] + }, + { + "pc": 429, + "op": "MLOAD", + "gas": 1014092, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0x20", + "0x100" + ] + }, + { + "pc": 430, + "op": "DUP6", + "gas": 1014089, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0x20", + "0x12" + ] + }, + { + "pc": 431, + "op": "MLOAD", + "gas": 1014086, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0x20", + "0x12", + "0x1a0" + ] + }, + { + "pc": 432, + "op": "SWAP1", + "gas": 1014083, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0x20", + "0x12", + "0x9" + ] + }, + { + "pc": 433, + "op": "SWAP4", + "gas": 1014080, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x1a0", + "0x80", + "0x20", + "0x9", + "0x12" + ] + }, + { + "pc": 434, + "op": "POP", + "gas": 1014077, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x80", + "0x20", + "0x9", + "0x1a0" + ] + }, + { + "pc": 435, + "op": "DUP6", + "gas": 1014075, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x80", + "0x20", + "0x9" + ] + }, + { + "pc": 436, + "op": "SWAP3", + "gas": 1014072, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x80", + "0x20", + "0x9", + "0x1a0" + ] + }, + { + "pc": 437, + "op": "POP", + "gas": 1014069, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x20", + "0x9", + "0x80" + ] + }, + { + "pc": 438, + "op": "DUP5", + "gas": 1014067, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x20", + "0x9" + ] + }, + { + "pc": 439, + "op": "SWAP2", + "gas": 1014064, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x20", + "0x9", + "0x1e0" + ] + }, + { + "pc": 440, + "op": "PUSH3", + "gas": 1014061, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x9", + "0x20" + ] + }, + { + "pc": 444, + "op": "SWAP2", + "gas": 1014058, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x9", + "0x20", + "0x1c8" + ] + }, + { + "pc": 445, + "op": "PUSH1", + "gas": 1014055, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x20", + "0x9" + ] + }, + { + "pc": 447, + "op": "SWAP2", + "gas": 1014052, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x20", + "0x9", + "0x3" + ] + }, + { + "pc": 448, + "op": "DUP6", + "gas": 1014049, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x9", + "0x20" + ] + }, + { + "pc": 449, + "op": "ADD", + "gas": 1014046, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x9", + "0x20", + "0x1a0" + ] + }, + { + "pc": 450, + "op": "SWAP1", + "gas": 1014043, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x9", + "0x1c0" + ] + }, + { + "pc": 451, + "op": "PUSH3", + "gas": 1014040, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9" + ] + }, + { + "pc": 455, + "op": "JUMP", + "gas": 1014037, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x26b" + ] + }, + { + "pc": 619, + "op": "JUMPDEST", + "gas": 1014029, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9" + ] + }, + { + "pc": 620, + "op": "DUP3", + "gas": 1014028, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9" + ] + }, + { + "pc": 621, + "op": "DUP1", + "gas": 1014025, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3" + ] + }, + { + "pc": 622, + "op": "SLOAD", + "gas": 1014022, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x3" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000003", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 623, + "op": "PUSH1", + "gas": 1011922, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0" + ] + }, + { + "pc": 625, + "op": "DUP2", + "gas": 1011919, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x1" + ] + }, + { + "pc": 626, + "op": "PUSH1", + "gas": 1011916, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 628, + "op": "AND", + "gas": 1011913, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 629, + "op": "ISZERO", + "gas": 1011910, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 630, + "op": "PUSH2", + "gas": 1011907, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 633, + "op": "MUL", + "gas": 1011904, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x1", + "0x1", + "0x100" + ] + }, + { + "pc": 634, + "op": "SUB", + "gas": 1011899, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x1", + "0x100" + ] + }, + { + "pc": 635, + "op": "AND", + "gas": 1011896, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0xff" + ] + }, + { + "pc": 636, + "op": "PUSH1", + "gas": 1011893, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0" + ] + }, + { + "pc": 638, + "op": "SWAP1", + "gas": 1011890, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0", + "0x2" + ] + }, + { + "pc": 639, + "op": "DIV", + "gas": 1011887, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x2", + "0x0" + ] + }, + { + "pc": 640, + "op": "SWAP1", + "gas": 1011882, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x3", + "0x0" + ] + }, + { + "pc": 641, + "op": "PUSH1", + "gas": 1011879, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x0", + "0x3" + ] + }, + { + "pc": 643, + "op": "MSTORE", + "gas": 1011876, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x0", + "0x3", + "0x0" + ] + }, + { + "pc": 644, + "op": "PUSH1", + "gas": 1011873, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x0" + ] + }, + { + "pc": 646, + "op": "PUSH1", + "gas": 1011870, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x0", + "0x20" + ] + }, + { + "pc": 648, + "op": "SHA3", + "gas": 1011867, + "gasCost": 36, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x0", + "0x20", + "0x0" + ] + }, + { + "pc": 649, + "op": "SWAP1", + "gas": 1011831, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0x0", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 650, + "op": "PUSH1", + "gas": 1011828, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x0" + ] + }, + { + "pc": 652, + "op": "ADD", + "gas": 1011825, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x0", + "0x1f" + ] + }, + { + "pc": 653, + "op": "PUSH1", + "gas": 1011822, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1f" + ] + }, + { + "pc": 655, + "op": "SWAP1", + "gas": 1011819, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1f", + "0x20" + ] + }, + { + "pc": 656, + "op": "DIV", + "gas": 1011816, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x20", + "0x1f" + ] + }, + { + "pc": 657, + "op": "DUP2", + "gas": 1011811, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x0" + ] + }, + { + "pc": 658, + "op": "ADD", + "gas": 1011808, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x0", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 659, + "op": "SWAP3", + "gas": 1011805, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x1c0", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 660, + "op": "DUP3", + "gas": 1011802, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0" + ] + }, + { + "pc": 661, + "op": "PUSH1", + "gas": 1011799, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x9" + ] + }, + { + "pc": 663, + "op": "LT", + "gas": 1011796, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x9", + "0x1f" + ] + }, + { + "pc": 664, + "op": "PUSH3", + "gas": 1011793, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x0" + ] + }, + { + "pc": 668, + "op": "JUMPI", + "gas": 1011790, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x0", + "0x2ae" + ] + }, + { + "pc": 669, + "op": "DUP1", + "gas": 1011780, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0" + ] + }, + { + "pc": 670, + "op": "MLOAD", + "gas": 1011777, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x1c0" + ] + }, + { + "pc": 671, + "op": "PUSH1", + "gas": 1011774, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 673, + "op": "NOT", + "gas": 1011771, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0xff" + ] + }, + { + "pc": 674, + "op": "AND", + "gas": 1011768, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 675, + "op": "DUP4", + "gas": 1011765, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 676, + "op": "DUP1", + "gas": 1011762, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x9" + ] + }, + { + "pc": 677, + "op": "ADD", + "gas": 1011759, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x9", + "0x9" + ] + }, + { + "pc": 678, + "op": "OR", + "gas": 1011756, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000000", + "0x12" + ] + }, + { + "pc": 679, + "op": "DUP6", + "gas": 1011753, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000012" + ] + }, + { + "pc": 680, + "op": "SSTORE", + "gas": 1011750, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x3" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000003", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 681, + "op": "PUSH3", + "gas": 991750, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0" + ] + }, + { + "pc": 685, + "op": "JUMP", + "gas": 991747, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0", + "0x2de" + ] + }, + { + "pc": 734, + "op": "JUMPDEST", + "gas": 991739, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 991738, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1c0" + ] + }, + { + "pc": 736, + "op": "PUSH3", + "gas": 991736, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 740, + "op": "SWAP3", + "gas": 991733, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x2ec" + ] + }, + { + "pc": 741, + "op": "SWAP2", + "gas": 991730, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0x9", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 742, + "op": "POP", + "gas": 991727, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x9" + ] + }, + { + "pc": 743, + "op": "PUSH3", + "gas": 991725, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 747, + "op": "JUMP", + "gas": 991722, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x2f0" + ] + }, + { + "pc": 752, + "op": "JUMPDEST", + "gas": 991714, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 753, + "op": "JUMPDEST", + "gas": 991713, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 754, + "op": "DUP1", + "gas": 991712, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 755, + "op": "DUP3", + "gas": 991709, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 756, + "op": "GT", + "gas": 991706, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 757, + "op": "ISZERO", + "gas": 991703, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x0" + ] + }, + { + "pc": 758, + "op": "PUSH3", + "gas": 991700, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1" + ] + }, + { + "pc": 762, + "op": "JUMPI", + "gas": 991697, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x1", + "0x2ec" + ] + }, + { + "pc": 748, + "op": "JUMPDEST", + "gas": 991687, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 749, + "op": "POP", + "gas": 991686, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 750, + "op": "SWAP1", + "gas": 991684, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0x2ec", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 751, + "op": "JUMP", + "gas": 991681, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b", + "0x2ec" + ] + }, + { + "pc": 748, + "op": "JUMPDEST", + "gas": 991673, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 749, + "op": "POP", + "gas": 991672, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3", + "0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b" + ] + }, + { + "pc": 750, + "op": "SWAP1", + "gas": 991670, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1c8", + "0x3" + ] + }, + { + "pc": 751, + "op": "JUMP", + "gas": 991667, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x3", + "0x1c8" + ] + }, + { + "pc": 456, + "op": "JUMPDEST", + "gas": 991659, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x3" + ] + }, + { + "pc": 457, + "op": "POP", + "gas": 991658, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x3" + ] + }, + { + "pc": 458, + "op": "DUP1", + "gas": 991656, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0" + ] + }, + { + "pc": 459, + "op": "MLOAD", + "gas": 991653, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1e0" + ] + }, + { + "pc": 460, + "op": "PUSH3", + "gas": 991650, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x4" + ] + }, + { + "pc": 464, + "op": "SWAP1", + "gas": 991647, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x4", + "0x1de" + ] + }, + { + "pc": 465, + "op": "PUSH1", + "gas": 991644, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4" + ] + }, + { + "pc": 467, + "op": "SWAP1", + "gas": 991641, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x4" + ] + }, + { + "pc": 468, + "op": "PUSH1", + "gas": 991638, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x4" + ] + }, + { + "pc": 470, + "op": "DUP5", + "gas": 991635, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x4", + "0x20" + ] + }, + { + "pc": 471, + "op": "ADD", + "gas": 991632, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x4", + "0x20", + "0x1e0" + ] + }, + { + "pc": 472, + "op": "SWAP1", + "gas": 991629, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x4", + "0x200" + ] + }, + { + "pc": 473, + "op": "PUSH3", + "gas": 991626, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4" + ] + }, + { + "pc": 477, + "op": "JUMP", + "gas": 991623, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x26b" + ] + }, + { + "pc": 619, + "op": "JUMPDEST", + "gas": 991615, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4" + ] + }, + { + "pc": 620, + "op": "DUP3", + "gas": 991614, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4" + ] + }, + { + "pc": 621, + "op": "DUP1", + "gas": 991611, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4" + ] + }, + { + "pc": 622, + "op": "SLOAD", + "gas": 991608, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x4" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 623, + "op": "PUSH1", + "gas": 989508, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0" + ] + }, + { + "pc": 625, + "op": "DUP2", + "gas": 989505, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x1" + ] + }, + { + "pc": 626, + "op": "PUSH1", + "gas": 989502, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 628, + "op": "AND", + "gas": 989499, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x1", + "0x0", + "0x1" + ] + }, + { + "pc": 629, + "op": "ISZERO", + "gas": 989496, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x1", + "0x0" + ] + }, + { + "pc": 630, + "op": "PUSH2", + "gas": 989493, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 633, + "op": "MUL", + "gas": 989490, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x1", + "0x1", + "0x100" + ] + }, + { + "pc": 634, + "op": "SUB", + "gas": 989485, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x1", + "0x100" + ] + }, + { + "pc": 635, + "op": "AND", + "gas": 989482, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0xff" + ] + }, + { + "pc": 636, + "op": "PUSH1", + "gas": 989479, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0" + ] + }, + { + "pc": 638, + "op": "SWAP1", + "gas": 989476, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0", + "0x2" + ] + }, + { + "pc": 639, + "op": "DIV", + "gas": 989473, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x2", + "0x0" + ] + }, + { + "pc": 640, + "op": "SWAP1", + "gas": 989468, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x4", + "0x0" + ] + }, + { + "pc": 641, + "op": "PUSH1", + "gas": 989465, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x0", + "0x4" + ] + }, + { + "pc": 643, + "op": "MSTORE", + "gas": 989462, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x0", + "0x4", + "0x0" + ] + }, + { + "pc": 644, + "op": "PUSH1", + "gas": 989459, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x0" + ] + }, + { + "pc": 646, + "op": "PUSH1", + "gas": 989456, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x0", + "0x20" + ] + }, + { + "pc": 648, + "op": "SHA3", + "gas": 989453, + "gasCost": 36, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x0", + "0x20", + "0x0" + ] + }, + { + "pc": 649, + "op": "SWAP1", + "gas": 989417, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x0", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 650, + "op": "PUSH1", + "gas": 989414, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x0" + ] + }, + { + "pc": 652, + "op": "ADD", + "gas": 989411, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x0", + "0x1f" + ] + }, + { + "pc": 653, + "op": "PUSH1", + "gas": 989408, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x1f" + ] + }, + { + "pc": 655, + "op": "SWAP1", + "gas": 989405, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x1f", + "0x20" + ] + }, + { + "pc": 656, + "op": "DIV", + "gas": 989402, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x20", + "0x1f" + ] + }, + { + "pc": 657, + "op": "DUP2", + "gas": 989397, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x0" + ] + }, + { + "pc": 658, + "op": "ADD", + "gas": 989394, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x0", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 659, + "op": "SWAP3", + "gas": 989391, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x200", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 660, + "op": "DUP3", + "gas": 989388, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200" + ] + }, + { + "pc": 661, + "op": "PUSH1", + "gas": 989385, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x4" + ] + }, + { + "pc": 663, + "op": "LT", + "gas": 989382, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x4", + "0x1f" + ] + }, + { + "pc": 664, + "op": "PUSH3", + "gas": 989379, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x0" + ] + }, + { + "pc": 668, + "op": "JUMPI", + "gas": 989376, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x0", + "0x2ae" + ] + }, + { + "pc": 669, + "op": "DUP1", + "gas": 989366, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200" + ] + }, + { + "pc": 670, + "op": "MLOAD", + "gas": 989363, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x200" + ] + }, + { + "pc": 671, + "op": "PUSH1", + "gas": 989360, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 673, + "op": "NOT", + "gas": 989357, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0xff" + ] + }, + { + "pc": 674, + "op": "AND", + "gas": 989354, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 675, + "op": "DUP4", + "gas": 989351, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000" + ] + }, + { + "pc": 676, + "op": "DUP1", + "gas": 989348, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x4" + ] + }, + { + "pc": 677, + "op": "ADD", + "gas": 989345, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x4", + "0x4" + ] + }, + { + "pc": 678, + "op": "OR", + "gas": 989342, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000000", + "0x8" + ] + }, + { + "pc": 679, + "op": "DUP6", + "gas": 989339, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000008" + ] + }, + { + "pc": 680, + "op": "SSTORE", + "gas": 989336, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x4" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 681, + "op": "PUSH3", + "gas": 969336, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200" + ] + }, + { + "pc": 685, + "op": "JUMP", + "gas": 969333, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200", + "0x2de" + ] + }, + { + "pc": 734, + "op": "JUMPDEST", + "gas": 969325, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200" + ] + }, + { + "pc": 735, + "op": "POP", + "gas": 969324, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x200" + ] + }, + { + "pc": 736, + "op": "PUSH3", + "gas": 969322, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 740, + "op": "SWAP3", + "gas": 969319, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x2ec" + ] + }, + { + "pc": 741, + "op": "SWAP2", + "gas": 969316, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 742, + "op": "POP", + "gas": 969313, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x4" + ] + }, + { + "pc": 743, + "op": "PUSH3", + "gas": 969311, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 747, + "op": "JUMP", + "gas": 969308, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x2f0" + ] + }, + { + "pc": 752, + "op": "JUMPDEST", + "gas": 969300, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 753, + "op": "JUMPDEST", + "gas": 969299, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 754, + "op": "DUP1", + "gas": 969298, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 755, + "op": "DUP3", + "gas": 969295, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 756, + "op": "GT", + "gas": 969292, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 757, + "op": "ISZERO", + "gas": 969289, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x0" + ] + }, + { + "pc": 758, + "op": "PUSH3", + "gas": 969286, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x1" + ] + }, + { + "pc": 762, + "op": "JUMPI", + "gas": 969283, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x1", + "0x2ec" + ] + }, + { + "pc": 748, + "op": "JUMPDEST", + "gas": 969273, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 749, + "op": "POP", + "gas": 969272, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 750, + "op": "SWAP1", + "gas": 969270, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x2ec", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 751, + "op": "JUMP", + "gas": 969267, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b", + "0x2ec" + ] + }, + { + "pc": 748, + "op": "JUMPDEST", + "gas": 969259, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 749, + "op": "POP", + "gas": 969258, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4", + "0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b" + ] + }, + { + "pc": 750, + "op": "SWAP1", + "gas": 969256, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x1de", + "0x4" + ] + }, + { + "pc": 751, + "op": "JUMP", + "gas": 969253, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x4", + "0x1de" + ] + }, + { + "pc": 478, + "op": "JUMPDEST", + "gas": 969245, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x4" + ] + }, + { + "pc": 479, + "op": "POP", + "gas": 969244, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0", + "0x4" + ] + }, + { + "pc": 480, + "op": "POP", + "gas": 969242, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x1e0" + ] + }, + { + "pc": 481, + "op": "PUSH1", + "gas": 969240, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0" + ] + }, + { + "pc": 483, + "op": "DUP1", + "gas": 969237, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5" + ] + }, + { + "pc": 484, + "op": "SLOAD", + "gas": 969234, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x5" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 485, + "op": "PUSH2", + "gas": 967134, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x0" + ] + }, + { + "pc": 488, + "op": "NOT", + "gas": 967131, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x0", + "0xff00" + ] + }, + { + "pc": 489, + "op": "PUSH1", + "gas": 967128, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff" + ] + }, + { + "pc": 491, + "op": "NOT", + "gas": 967125, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff", + "0xff" + ] + }, + { + "pc": 492, + "op": "SWAP1", + "gas": 967122, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 493, + "op": "SWAP2", + "gas": 967119, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff" + ] + }, + { + "pc": 494, + "op": "AND", + "gas": 967116, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00", + "0x0" + ] + }, + { + "pc": 495, + "op": "PUSH1", + "gas": 967113, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff", + "0x0" + ] + }, + { + "pc": 497, + "op": "OR", + "gas": 967110, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff", + "0x0", + "0x12" + ] + }, + { + "pc": 498, + "op": "AND", + "gas": 967107, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff", + "0x12" + ] + }, + { + "pc": 499, + "op": "SWAP1", + "gas": 967104, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x5", + "0x12" + ] + }, + { + "pc": 500, + "op": "SSTORE", + "gas": 967101, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0", + "0x12", + "0x5" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 501, + "op": "POP", + "gas": 947101, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1a0" + ] + }, + { + "pc": 502, + "op": "PUSH1", + "gas": 947099, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12" + ] + }, + { + "pc": 504, + "op": "DUP1", + "gas": 947096, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6" + ] + }, + { + "pc": 505, + "op": "SLOAD", + "gas": 947093, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x6" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000006", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 506, + "op": "PUSH1", + "gas": 944993, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0" + ] + }, + { + "pc": 508, + "op": "PUSH1", + "gas": 944990, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0x1" + ] + }, + { + "pc": 510, + "op": "PUSH1", + "gas": 944987, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0x1", + "0x1" + ] + }, + { + "pc": 512, + "op": "SHL", + "gas": 944984, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0x1", + "0x1", + "0xa0" + ] + }, + { + "pc": 513, + "op": "SUB", + "gas": 944981, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0x1", + "0x10000000000000000000000000000000000000000" + ] + }, + { + "pc": 514, + "op": "DUP1", + "gas": 944978, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 515, + "op": "DUP9", + "gas": 944975, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 516, + "op": "AND", + "gas": 944972, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 517, + "op": "PUSH1", + "gas": 944969, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 519, + "op": "PUSH1", + "gas": 944966, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1" + ] + }, + { + "pc": 521, + "op": "PUSH1", + "gas": 944963, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1", + "0x1" + ] + }, + { + "pc": 523, + "op": "SHL", + "gas": 944960, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1", + "0x1", + "0xa0" + ] + }, + { + "pc": 524, + "op": "SUB", + "gas": 944957, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1", + "0x10000000000000000000000000000000000000000" + ] + }, + { + "pc": 525, + "op": "NOT", + "gas": 944954, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 526, + "op": "SWAP3", + "gas": 944951, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0x0", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + ] + }, + { + "pc": 527, + "op": "DUP4", + "gas": 944948, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0" + ] + }, + { + "pc": 528, + "op": "AND", + "gas": 944945, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + ] + }, + { + "pc": 529, + "op": "OR", + "gas": 944942, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0" + ] + }, + { + "pc": 530, + "op": "SWAP1", + "gas": 944939, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 531, + "op": "SWAP3", + "gas": 944936, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x6", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 532, + "op": "SSTORE", + "gas": 944933, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x6" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000006", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 533, + "op": "PUSH1", + "gas": 924933, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + ] + }, + { + "pc": 535, + "op": "DUP1", + "gas": 924930, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x7" + ] + }, + { + "pc": 536, + "op": "SLOAD", + "gas": 924927, + "gasCost": 2100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x7", + "0x7" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000007", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 537, + "op": "SWAP3", + "gas": 922827, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x7", + "0x0" + ] + }, + { + "pc": 538, + "op": "DUP8", + "gas": 922824, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x0", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x7", + "0xffffffffffffffffffffffffffffffffffffffff" + ] + }, + { + "pc": 539, + "op": "AND", + "gas": 922821, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x0", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x7", + "0xffffffffffffffffffffffffffffffffffffffff", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 540, + "op": "SWAP3", + "gas": 922818, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x0", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x7", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 541, + "op": "SWAP1", + "gas": 922815, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x7", + "0x0" + ] + }, + { + "pc": 542, + "op": "SWAP2", + "gas": 922812, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000", + "0x0", + "0x7" + ] + }, + { + "pc": 543, + "op": "AND", + "gas": 922809, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x7", + "0x0", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + ] + }, + { + "pc": 544, + "op": "SWAP2", + "gas": 922806, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x7", + "0x0" + ] + }, + { + "pc": 545, + "op": "SWAP1", + "gas": 922803, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x0", + "0x7", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 546, + "op": "SWAP2", + "gas": 922800, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x0", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x7" + ] + }, + { + "pc": 547, + "op": "OR", + "gas": 922797, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x7", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0" + ] + }, + { + "pc": 548, + "op": "SWAP1", + "gas": 922794, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x7", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 549, + "op": "SSTORE", + "gas": 922791, + "gasCost": 20000, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x7" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000007", + "value": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ] + } + }, + { + "pc": 550, + "op": "PUSH3", + "gas": 902791, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12" + ] + }, + { + "pc": 554, + "op": "DUP2", + "gas": 902788, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230" + ] + }, + { + "pc": 555, + "op": "PUSH3", + "gas": 902785, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12" + ] + }, + { + "pc": 559, + "op": "JUMP", + "gas": 902782, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x255" + ] + }, + { + "pc": 597, + "op": "JUMPDEST", + "gas": 902774, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12" + ] + }, + { + "pc": 598, + "op": "PUSH1", + "gas": 902773, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12" + ] + }, + { + "pc": 600, + "op": "DUP1", + "gas": 902770, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5" + ] + }, + { + "pc": 601, + "op": "SLOAD", + "gas": 902767, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5", + "0x5" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "value": "0x0000000000000000000000000000000000000000000000000000000000000012" + } + } + ] + } + }, + { + "pc": 602, + "op": "PUSH1", + "gas": 902667, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5", + "0x12" + ] + }, + { + "pc": 604, + "op": "NOT", + "gas": 902664, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5", + "0x12", + "0xff" + ] + }, + { + "pc": 605, + "op": "AND", + "gas": 902661, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5", + "0x12", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + ] + }, + { + "pc": 606, + "op": "PUSH1", + "gas": 902658, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5", + "0x0" + ] + }, + { + "pc": 608, + "op": "SWAP3", + "gas": 902655, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5", + "0x0", + "0xff" + ] + }, + { + "pc": 609, + "op": "SWAP1", + "gas": 902652, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0xff", + "0x5", + "0x0", + "0x12" + ] + }, + { + "pc": 610, + "op": "SWAP3", + "gas": 902649, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0xff", + "0x5", + "0x12", + "0x0" + ] + }, + { + "pc": 611, + "op": "AND", + "gas": 902646, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x0", + "0x5", + "0x12", + "0xff" + ] + }, + { + "pc": 612, + "op": "SWAP2", + "gas": 902643, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x0", + "0x5", + "0x12" + ] + }, + { + "pc": 613, + "op": "SWAP1", + "gas": 902640, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5", + "0x0" + ] + }, + { + "pc": 614, + "op": "SWAP2", + "gas": 902637, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x0", + "0x5" + ] + }, + { + "pc": 615, + "op": "OR", + "gas": 902634, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x5", + "0x0", + "0x12" + ] + }, + { + "pc": 616, + "op": "SWAP1", + "gas": 902631, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x5", + "0x12" + ] + }, + { + "pc": 617, + "op": "SSTORE", + "gas": 902628, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230", + "0x12", + "0x5" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "value": "0x0000000000000000000000000000000000000000000000000000000000000012" + } + } + ] + } + }, + { + "pc": 618, + "op": "JUMP", + "gas": 902528, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12", + "0x230" + ] + }, + { + "pc": 560, + "op": "JUMPDEST", + "gas": 902520, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12" + ] + }, + { + "pc": 561, + "op": "POP", + "gas": 902519, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0", + "0x12" + ] + }, + { + "pc": 562, + "op": "POP", + "gas": 902517, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1e0" + ] + }, + { + "pc": 563, + "op": "PUSH1", + "gas": 902515, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0" + ] + }, + { + "pc": 565, + "op": "DUP1", + "gas": 902512, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5" + ] + }, + { + "pc": 566, + "op": "SLOAD", + "gas": 902509, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x5" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "value": "0x0000000000000000000000000000000000000000000000000000000000000012" + } + } + ] + } + }, + { + "pc": 567, + "op": "PUSH3", + "gas": 902409, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12" + ] + }, + { + "pc": 571, + "op": "PUSH1", + "gas": 902406, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0x10000" + ] + }, + { + "pc": 573, + "op": "PUSH1", + "gas": 902403, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0x10000", + "0x1" + ] + }, + { + "pc": 575, + "op": "SHL", + "gas": 902400, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0x10000", + "0x1", + "0xb0" + ] + }, + { + "pc": 576, + "op": "SUB", + "gas": 902397, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0x10000", + "0x100000000000000000000000000000000000000000000" + ] + }, + { + "pc": 577, + "op": "NOT", + "gas": 902394, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0xffffffffffffffffffffffffffffffffffffffff0000" + ] + }, + { + "pc": 578, + "op": "AND", + "gas": 902391, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0xffffffffffffffffffff0000000000000000000000000000000000000000ffff" + ] + }, + { + "pc": 579, + "op": "CALLER", + "gas": 902388, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12" + ] + }, + { + "pc": 580, + "op": "PUSH3", + "gas": 902386, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 584, + "op": "MUL", + "gas": 902383, + "gasCost": 5, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x10000" + ] + }, + { + "pc": 585, + "op": "OR", + "gas": 902378, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x12", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b630000" + ] + }, + { + "pc": 586, + "op": "SWAP1", + "gas": 902375, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x5", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b630012" + ] + }, + { + "pc": 587, + "op": "SSTORE", + "gas": 902372, + "gasCost": 100, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b630012", + "0x5" + ], + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5745544820636f696e0000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b630012", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + }, + "extraData": { + "proofList": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "nonce": 1, + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "value": "0x0000000000000000000000000000000000000000000000000000000000000012" + } + } + ] + } + }, + { + "pc": 588, + "op": "POP", + "gas": 902272, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1a0" + ] + }, + { + "pc": 589, + "op": "PUSH3", + "gas": 902270, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 593, + "op": "SWAP2", + "gas": 902267, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x307" + ] + }, + { + "pc": 594, + "op": "POP", + "gas": 902264, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x307", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 595, + "op": "POP", + "gas": 902262, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x307", + "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63" + ] + }, + { + "pc": 596, + "op": "JUMP", + "gas": 902260, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x307" + ] + }, + { + "pc": 775, + "op": "JUMPDEST", + "gas": 902252, + "gasCost": 1, + "depth": 1 + }, + { + "pc": 776, + "op": "PUSH2", + "gas": 902251, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 779, + "op": "DUP1", + "gas": 902248, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x119b" + ] + }, + { + "pc": 780, + "op": "PUSH3", + "gas": 902245, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x119b", + "0x119b" + ] + }, + { + "pc": 784, + "op": "PUSH1", + "gas": 902242, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x119b", + "0x119b", + "0x317" + ] + }, + { + "pc": 786, + "op": "CODECOPY", + "gas": 902239, + "gasCost": 836, + "depth": 1, + "stack": [ + "0x119b", + "0x119b", + "0x317", + "0x0" + ], + "extraData": { + "codeList": [ + "0x" + ] + } + }, + { + "pc": 787, + "op": "PUSH1", + "gas": 901403, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x119b" + ] + }, + { + "pc": 789, + "op": "RETURN", + "gas": 901400, + "gasCost": 0, + "depth": 1, + "stack": [ + "0x119b", + "0x0" + ] + } + ] + } + ], + "mptwitness": [ + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0xaf16fd780a8c7616b95b20da69f4ff26e0253238e996f9516445d6d6bf92b725", + "path": [ + { + "value": "0x5bbe97e7e66485b203f9dfea64eb7fa7df06959b12cbde2beba14f8f91133a13", + "sibling": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806" + }, + { + "value": "0x0000000000000000000000000000000000000000000000000000000000000000", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ] + }, + { + "pathPart": "0x1", + "root": "0x08ebb525664ab0c02c49587ec298d42388319f0c57a3018a7984f77a69b06a20", + "path": [ + { + "value": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104", + "sibling": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806" + }, + { + "value": "0x5c70b599f4da7e6c8271703a7677e703fa0cab9088232a1c0ee99aa3112fd51e", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x33c5435c783d711eca3cb21179f8afaf6dd0be8ca0f066d0daace28b17fc281d", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + null, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "accountKey": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0x08ebb525664ab0c02c49587ec298d42388319f0c57a3018a7984f77a69b06a20", + "path": [ + { + "value": "0x34f20c09876841ab1c180877223cc915ca96589b05ecea552aa2b3b9b47de806", + "sibling": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104" + } + ], + "leaf": { + "value": "0xf199fe1a085b5bb134e90d0bfdaf70579fa703ab3db986a6730b44cfd5207b15", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0x5ccb01b192af8237bf448abf2c7fb6531ce162936172524eac258b40f32f0812", + "path": [ + { + "value": "0xdae1cffcb0f5fe3e341a9a514f9c06a6feaac97547b8ee2db69b239b880b9e19", + "sibling": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104" + } + ], + "leaf": { + "value": "0xaa040d2c798b9c0db0484dcb8461200c9a92fa6a76c1bb58ec582d2c2d2edd22", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + { + "nonce": 2, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0x5ccb01b192af8237bf448abf2c7fb6531ce162936172524eac258b40f32f0812", + "path": [ + { + "value": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104", + "sibling": "0xdae1cffcb0f5fe3e341a9a514f9c06a6feaac97547b8ee2db69b239b880b9e19" + }, + { + "value": "0x5c70b599f4da7e6c8271703a7677e703fa0cab9088232a1c0ee99aa3112fd51e", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x33c5435c783d711eca3cb21179f8afaf6dd0be8ca0f066d0daace28b17fc281d", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + }, + { + "pathPart": "0x1", + "root": "0x5ccb01b192af8237bf448abf2c7fb6531ce162936172524eac258b40f32f0812", + "path": [ + { + "value": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104", + "sibling": "0xdae1cffcb0f5fe3e341a9a514f9c06a6feaac97547b8ee2db69b239b880b9e19" + }, + { + "value": "0x5c70b599f4da7e6c8271703a7677e703fa0cab9088232a1c0ee99aa3112fd51e", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x33c5435c783d711eca3cb21179f8afaf6dd0be8ca0f066d0daace28b17fc281d", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "accountKey": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0x5ccb01b192af8237bf448abf2c7fb6531ce162936172524eac258b40f32f0812", + "path": [ + { + "value": "0xdae1cffcb0f5fe3e341a9a514f9c06a6feaac97547b8ee2db69b239b880b9e19", + "sibling": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104" + } + ], + "leaf": { + "value": "0xaa040d2c798b9c0db0484dcb8461200c9a92fa6a76c1bb58ec582d2c2d2edd22", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0xe1aa47a8831f65f972375542bbb23710ec9c671be8e9eafe81d1bb7136aab928", + "path": [ + { + "value": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24", + "sibling": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104" + } + ], + "leaf": { + "value": "0x882042a20c02edac064ed39dbcf5350bd3399c7747a7703d7960686e3101dd02", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + { + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d6a00d4dd70", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d683461ce98", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0xe1aa47a8831f65f972375542bbb23710ec9c671be8e9eafe81d1bb7136aab928", + "path": [ + { + "value": "0xf0a9432907471588a0e83aa9201193de159efe3b31e9112d6981c2be8ce45104", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x5c70b599f4da7e6c8271703a7677e703fa0cab9088232a1c0ee99aa3112fd51e", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x33c5435c783d711eca3cb21179f8afaf6dd0be8ca0f066d0daace28b17fc281d", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + }, + { + "pathPart": "0x1", + "root": "0xf09f669e4c99f58724043334be91d4474f70f1b893d7fd38764cec3917e65527", + "path": [ + { + "value": "0xe29200112e851398dda8f8932f2d348b9a1a13a247d81c6ad74a9102c220e62a", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x2ecc09123c5664b42e67e469c75a3692135a4d24b077a20c162fadf5ffde0f0c", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x4e7dad23bae2633b0173032b06fa8576108b3e9c12070849666bd3e38439a10a", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x1c5a77d9fa7ef466951b2f01f724bca3a5820b63", + "accountKey": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920", + "accountPath": [ + { + "pathPart": "0x0", + "root": "0xf09f669e4c99f58724043334be91d4474f70f1b893d7fd38764cec3917e65527", + "path": [ + { + "value": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24", + "sibling": "0xe29200112e851398dda8f8932f2d348b9a1a13a247d81c6ad74a9102c220e62a" + } + ], + "leaf": { + "value": "0x882042a20c02edac064ed39dbcf5350bd3399c7747a7703d7960686e3101dd02", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + }, + { + "pathPart": "0x0", + "root": "0xf09f669e4c99f58724043334be91d4474f70f1b893d7fd38764cec3917e65527", + "path": [ + { + "value": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24", + "sibling": "0xe29200112e851398dda8f8932f2d348b9a1a13a247d81c6ad74a9102c220e62a" + } + ], + "leaf": { + "value": "0x882042a20c02edac064ed39dbcf5350bd3399c7747a7703d7960686e3101dd02", + "sibling": "0x9c5a1607a0719e201f7325c41c2dc857a16eadd309bab5d1d93c7e1d15204920" + } + } + ], + "accountUpdate": [ + { + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d683461ce98", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, + { + "nonce": 3, + "balance": "0x1ffffffffffffffffffffffffffffffffffffffffffd5a5fa703d683461ce98", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + ], + "commonStateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "statePath": [ + null, + null + ], + "stateUpdate": [ + null, + null + ] + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0xf09f669e4c99f58724043334be91d4474f70f1b893d7fd38764cec3917e65527", + "path": [ + { + "value": "0xe29200112e851398dda8f8932f2d348b9a1a13a247d81c6ad74a9102c220e62a", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x2ecc09123c5664b42e67e469c75a3692135a4d24b077a20c162fadf5ffde0f0c", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x4e7dad23bae2633b0173032b06fa8576108b3e9c12070849666bd3e38439a10a", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + }, + { + "pathPart": "0x1", + "root": "0x3ff0a2bcb6d82f6c65b9743f2167554a38c00f716d30bf176550e9bbf211de02", + "path": [ + { + "value": "0x1bfd41162e3f41ae3e58194190067b7106d4de0c16b555f8a3d962b7e75a9127", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0xb7a86f10915a67ec505541bdc1fe3e00ae12ff4f817c2a8ef8d8f72861531f1a", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x5ae28e9db9a7b45743017db7696411292e9af5adb0ff11737a8936b69ef28403", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + }, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + } + ], + "stateKey": "0x84d07ce01938a8e3278d5a7b52cf4b853666886e48d30f623413b0a36e2b8e17", + "statePath": [ + { + "pathPart": "0x0", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "pathPart": "0x0", + "root": "0x9ed40c6ac1bdb532038ee26104d46ebe84b2184716fc96410c5228e05c901017", + "leaf": { + "value": "0x5cdff6c2c2ed92a182c2eeed8a689f39d0af361f9f15ceb8ffc2309f3a746920", + "sibling": "0x84d07ce01938a8e3278d5a7b52cf4b853666886e48d30f623413b0a36e2b8e17" + } + } + ], + "stateUpdate": [ + null, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000003", + "value": "0x5745544820636f696e0000000000000000000000000000000000000000000012" + } + ] + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0x3ff0a2bcb6d82f6c65b9743f2167554a38c00f716d30bf176550e9bbf211de02", + "path": [ + { + "value": "0x1bfd41162e3f41ae3e58194190067b7106d4de0c16b555f8a3d962b7e75a9127", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0xb7a86f10915a67ec505541bdc1fe3e00ae12ff4f817c2a8ef8d8f72861531f1a", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x5ae28e9db9a7b45743017db7696411292e9af5adb0ff11737a8936b69ef28403", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + }, + { + "pathPart": "0x1", + "root": "0x2e941dbce9c9463767e526ff1dc64448b54c4f38206985b291d08ff65f572c2b", + "path": [ + { + "value": "0x1f197a0287d09d7e4900d018a82a827087484a0df5333b12691a3cd4370ba911", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x9d5e14515e7dfae33e52c8267bc216c26e0a14e70235f5e562419a156a43a305", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x428cf4a59656f7c6327c6e90e01288157ce4d9e8de13c4868bbccd18d1fc112c", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + }, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + } + ], + "stateKey": "0x8e1ee9fe8054b1fa6d3989af4e3ca88a801f67f4a497c85ca0fe469d89272923", + "statePath": [ + { + "pathPart": "0x0", + "root": "0x9ed40c6ac1bdb532038ee26104d46ebe84b2184716fc96410c5228e05c901017", + "leaf": { + "value": "0x5cdff6c2c2ed92a182c2eeed8a689f39d0af361f9f15ceb8ffc2309f3a746920", + "sibling": "0x84d07ce01938a8e3278d5a7b52cf4b853666886e48d30f623413b0a36e2b8e17" + } + }, + { + "pathPart": "0x2", + "root": "0x89e588c8124ca0250a33c78c46584d603e4c12cea897c47dfc6cefa83402c41e", + "path": [ + { + "value": "0x73719ac007efd4480d52c2f7803dd61d2647851dd99df6a81303d484b617e213", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x37dbfd51b8cacf779ca71e9cfc9d13acc3db6cb917642dd18ca03b10bd9a2f18", + "sibling": "0x9ed40c6ac1bdb532038ee26104d46ebe84b2184716fc96410c5228e05c901017" + } + ], + "leaf": { + "value": "0xf03a062f7dac12aa4a8e1ecf3706890ce02e02be5e95d00650d1c43b6f5d0026", + "sibling": "0x8e1ee9fe8054b1fa6d3989af4e3ca88a801f67f4a497c85ca0fe469d89272923" + } + } + ], + "stateUpdate": [ + null, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x5745544800000000000000000000000000000000000000000000000000000008" + } + ] + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0x2e941dbce9c9463767e526ff1dc64448b54c4f38206985b291d08ff65f572c2b", + "path": [ + { + "value": "0x1f197a0287d09d7e4900d018a82a827087484a0df5333b12691a3cd4370ba911", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x9d5e14515e7dfae33e52c8267bc216c26e0a14e70235f5e562419a156a43a305", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x428cf4a59656f7c6327c6e90e01288157ce4d9e8de13c4868bbccd18d1fc112c", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + }, + { + "pathPart": "0x1", + "root": "0xf5ebd4c93bb15cd7e6be4adc0406d735327d712d6d0e5b6dd587739baca12907", + "path": [ + { + "value": "0xcd4f19c0ea5a8b7177bcdd705074451332d09ee076b071d08ac5bceb44566d19", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x088f92b5290bf701751c5bf33463ba87323c4546c0c059ce061c33fc759a9424", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x120a27869531ba07c327622f2e437105062409003b859a79bdd8673c7f989b29", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + }, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + } + ], + "stateKey": "0x68af6119e1c208c6d4e4a54e37e40c0ae109e97895d0970707e4b8face49940e", + "statePath": [ + { + "pathPart": "0x0", + "root": "0x89e588c8124ca0250a33c78c46584d603e4c12cea897c47dfc6cefa83402c41e", + "path": [ + { + "value": "0x73719ac007efd4480d52c2f7803dd61d2647851dd99df6a81303d484b617e213", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x9ed40c6ac1bdb532038ee26104d46ebe84b2184716fc96410c5228e05c901017", + "sibling": "0x37dbfd51b8cacf779ca71e9cfc9d13acc3db6cb917642dd18ca03b10bd9a2f18" + } + ], + "leaf": { + "value": "0x5cdff6c2c2ed92a182c2eeed8a689f39d0af361f9f15ceb8ffc2309f3a746920", + "sibling": "0x84d07ce01938a8e3278d5a7b52cf4b853666886e48d30f623413b0a36e2b8e17" + } + }, + { + "pathPart": "0x0", + "root": "0xa2ca8943f203126deccf79c17dc15904e4f5c15961f7bf869cef74053802ea28", + "path": [ + { + "value": "0x6c1ec8ffe1a58a389a0e3b733d1213b88983aacab48d06d8d923fe3fc9d0422e", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0xfc8dcec425a54dcee11a565b2448cd4422d93b16e60ff73c484c2ce8e138b52b", + "sibling": "0x37dbfd51b8cacf779ca71e9cfc9d13acc3db6cb917642dd18ca03b10bd9a2f18" + }, + { + "value": "0x65a94cbfc1b45c9e0abd5e951a14145d5c8d10628e023b788358e5550d4a7824", + "sibling": "0x9ed40c6ac1bdb532038ee26104d46ebe84b2184716fc96410c5228e05c901017" + } + ], + "leaf": { + "value": "0xacce20d02c097a1d31fba5c0b1df801db982fc92bb9414a8587b800f52b6f61c", + "sibling": "0x68af6119e1c208c6d4e4a54e37e40c0ae109e97895d0970707e4b8face49940e" + } + } + ], + "stateUpdate": [ + null, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "value": "0x000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b630012" + } + ] + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0xf5ebd4c93bb15cd7e6be4adc0406d735327d712d6d0e5b6dd587739baca12907", + "path": [ + { + "value": "0xcd4f19c0ea5a8b7177bcdd705074451332d09ee076b071d08ac5bceb44566d19", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x088f92b5290bf701751c5bf33463ba87323c4546c0c059ce061c33fc759a9424", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x120a27869531ba07c327622f2e437105062409003b859a79bdd8673c7f989b29", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + }, + { + "pathPart": "0x1", + "root": "0xfea77ab872522019f637cb99a0a35fab9fd7584f55b818622f5d04c496d8d912", + "path": [ + { + "value": "0x8bc098f2af6fc222476a060d160298ae3f123e2ac7c601869229f369b225f40f", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x7c15f1737fc59c2a1afebe163ee856733a4a6b82de66d50843ab7b46a97a9909", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x000f9969c209a3805df18d1e43e7a40409553d4ff3753e4d0571a6e944b1c517", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + }, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + } + ], + "stateKey": "0x046b3f7277dd2bb9226a061aa719407156457c66b932f8c7241f7b754470dc20", + "statePath": [ + { + "pathPart": "0x4", + "root": "0xa2ca8943f203126deccf79c17dc15904e4f5c15961f7bf869cef74053802ea28", + "path": [ + { + "value": "0x6c1ec8ffe1a58a389a0e3b733d1213b88983aacab48d06d8d923fe3fc9d0422e", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0xfc8dcec425a54dcee11a565b2448cd4422d93b16e60ff73c484c2ce8e138b52b", + "sibling": "0x37dbfd51b8cacf779ca71e9cfc9d13acc3db6cb917642dd18ca03b10bd9a2f18" + }, + { + "value": "0x9ed40c6ac1bdb532038ee26104d46ebe84b2184716fc96410c5228e05c901017", + "sibling": "0x65a94cbfc1b45c9e0abd5e951a14145d5c8d10628e023b788358e5550d4a7824" + } + ], + "leaf": { + "value": "0x5cdff6c2c2ed92a182c2eeed8a689f39d0af361f9f15ceb8ffc2309f3a746920", + "sibling": "0x84d07ce01938a8e3278d5a7b52cf4b853666886e48d30f623413b0a36e2b8e17" + } + }, + { + "pathPart": "0x4", + "root": "0x1f176cbfa5e0254f11c0146aa502cd1c84aac713c124c677b1bfafabf15f892b", + "path": [ + { + "value": "0x31a041ed93b6641f89e8295967d7cd4801aa8ca73e1f81e439122f36f3b7f710", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0xe5f76af6ebb792a20b480a6994b5c2264054d10c610fb8fbb75f2ab5ae9fcb01", + "sibling": "0x37dbfd51b8cacf779ca71e9cfc9d13acc3db6cb917642dd18ca03b10bd9a2f18" + }, + { + "value": "0x7d1b789f4a5411516280fd3b0104a3b5fdc5bbd6df8ea767168c373f15d8ff2d", + "sibling": "0x65a94cbfc1b45c9e0abd5e951a14145d5c8d10628e023b788358e5550d4a7824" + }, + { + "value": "0x3bdbeda9aef8d46ff022e68dff577618fe293b56e576f511353dc0345b89222d", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x0b20aef3078beadd95e24db8e1c2d204637fa6ad65a7177fb374818f7c953d1f", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x128c276138eb3d65b85b8c4444a6ce99c7c8f1bbf5346702ab7970a7afdc2123", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x1c3730c4f23bd1e76d6c9f8a2ae1374ef08b8d19c36afef8ffed8969fcfd9529", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x0658a357d896574c898607cb184a4c7f17e85191f40d1e7a0bfce95b8803f713", + "sibling": "0x9ed40c6ac1bdb532038ee26104d46ebe84b2184716fc96410c5228e05c901017" + } + ], + "leaf": { + "value": "0xa2c927e0a1f39fba117081072216e7c98a8ba79511734bb5e2ef40b12dcc2c12", + "sibling": "0x046b3f7277dd2bb9226a061aa719407156457c66b932f8c7241f7b754470dc20" + } + } + ], + "stateUpdate": [ + null, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000006", + "value": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + } + ] + }, + { + "address": "0x03f8133dd5ed58838b20af1296f62f44e69baa48", + "accountKey": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c", + "accountPath": [ + { + "pathPart": "0x1", + "root": "0xfea77ab872522019f637cb99a0a35fab9fd7584f55b818622f5d04c496d8d912", + "path": [ + { + "value": "0x8bc098f2af6fc222476a060d160298ae3f123e2ac7c601869229f369b225f40f", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0x7c15f1737fc59c2a1afebe163ee856733a4a6b82de66d50843ab7b46a97a9909", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0x000f9969c209a3805df18d1e43e7a40409553d4ff3753e4d0571a6e944b1c517", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + }, + { + "pathPart": "0x1", + "root": "0x1ca9391b065cb3cad3b75fdb7602bd07e9e201b6955f5599df71a6a2e22b7126", + "path": [ + { + "value": "0x6c8ac076e40ea7a2bacfa1f2eb4d16228358901eaeb2ff23de2617c2d69d761a", + "sibling": "0x549430921a06705ecd4ebf9a8635f5c735807a4d1aebcdaf6010c8241c8a7e24" + }, + { + "value": "0xc57a28be62e1405f969d7c595ca68ee57ff8c1ea8c1152110958fe5c04993b02", + "sibling": "0x2e591357b02ab3117c35ad94a4e1a724fdbd95d6463da1f6c8017e6d000ecf02" + } + ], + "leaf": { + "value": "0xa4d874cdd5069fb3049ab6fa98e8a38c4147b3aee9ee81c51898a1d95fd9d805", + "sibling": "0x357d8fb5134f3dc48eb1118c6a16ba14eee5d49fe9adaebd5879932694bf320c" + } + } + ], + "accountUpdate": [ + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + }, + { + "nonce": 1, + "balance": "0x0", + "codeHash": "0x07c28a1f146e6cc6b10bf3e1b0072b4e11300b7fe80d4543dc3bc8bef3e95843" + } + ], + "stateKey": "0x9e288b3b74343a5f7113836c1764ad0b125ea3cccfa1164bb0bf061d8f409e00", + "statePath": [ + { + "pathPart": "0x2", + "root": "0x1f176cbfa5e0254f11c0146aa502cd1c84aac713c124c677b1bfafabf15f892b", + "path": [ + { + "value": "0x31a041ed93b6641f89e8295967d7cd4801aa8ca73e1f81e439122f36f3b7f710", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x37dbfd51b8cacf779ca71e9cfc9d13acc3db6cb917642dd18ca03b10bd9a2f18", + "sibling": "0xe5f76af6ebb792a20b480a6994b5c2264054d10c610fb8fbb75f2ab5ae9fcb01" + } + ], + "leaf": { + "value": "0xf03a062f7dac12aa4a8e1ecf3706890ce02e02be5e95d00650d1c43b6f5d0026", + "sibling": "0x8e1ee9fe8054b1fa6d3989af4e3ca88a801f67f4a497c85ca0fe469d89272923" + } + }, + { + "pathPart": "0x1e", + "root": "0x6415bf82698d10370b73f5729ca9744ad2c933d642c1d59db83708e2eddfab25", + "path": [ + { + "value": "0x05d10e87783ea65c9d90f440ceb8c2f147012020a7dbd6f9fd95de35720dd616", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x8047642edb3ed776a59784d319750041a9721b507b98941a8c3d723039a52c1a", + "sibling": "0xe5f76af6ebb792a20b480a6994b5c2264054d10c610fb8fbb75f2ab5ae9fcb01" + }, + { + "value": "0x20b3db0acca1e9b17bb14d3990d75f2a112e1658c75a151bceb5976912a8072b", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0xd71ff7f2d6d380b7b5d964421c3306112edea7598b290d7c383873354ae0d31a", + "sibling": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "value": "0x82b38622562739a63a73c983080da4bf23621a5b834eed4bc96f8b60cabe7a29", + "sibling": "0x37dbfd51b8cacf779ca71e9cfc9d13acc3db6cb917642dd18ca03b10bd9a2f18" + } + ], + "leaf": { + "value": "0xa2c927e0a1f39fba117081072216e7c98a8ba79511734bb5e2ef40b12dcc2c12", + "sibling": "0x9e288b3b74343a5f7113836c1764ad0b125ea3cccfa1164bb0bf061d8f409e00" + } + } + ], + "stateUpdate": [ + null, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000007", + "value": "0x0000000000000000000000001c5a77d9fa7ef466951b2f01f724bca3a5820b63" + } + ] + } + ] +} diff --git a/rollup/rollup_sync_service/testdata/blockTrace_04.json b/rollup/rollup_sync_service/testdata/blockTrace_04.json new file mode 100644 index 000000000000..d202fe246053 --- /dev/null +++ b/rollup/rollup_sync_service/testdata/blockTrace_04.json @@ -0,0 +1,870 @@ +{ + "coinbase": { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + }, + "header": { + "parentHash": "0xe761181afb179bc4e6848ecc4e32af82c0eeff4aca77024f985d1dffb0ba0013", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "miner": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x155c42b3ffa9b88987b02bc8f89fb31f2b555bb8bff971d6fcd92e04a144c248", + "transactionsRoot": "0x891f5907147c83867e1e7b200b9d26fb43c3c08f81202d04235c84a2aa79f72f", + "receiptsRoot": "0x7ad169feb178baf74f7c0a12a28570bd69bd10e616acad2caea09a55fd1fb541", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x2", + "number": "0xd", + "gasLimit": "0x7a1200", + "gasUsed": "0x5dc0", + "timestamp": "0x646b6e13", + "extraData": "0xd983030201846765746889676f312e31382e3130856c696e7578000000000000f942387d5a3dba7786280b806f022e2afaec53939149ac7b132b4ef1cf5cdf393d688543d984ae15b1896185ea13f9e7ae18b22b65e5ffec9128195d7cde6fa700", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": null, + "hash": "0x09f75bc27efe18cd77a82491370442ea5a6066e910b73dc99fe1caff950c357b" + }, + "row_consumption": [ + ], + "transactions": [ + { + "type": 126, + "nonce": 10, + "txHash": "0xed6dff31c5516b3b9d169781865276cf27501aadd45c131bf8c841c5e619e56a", + "gas": 24000, + "gasPrice": "0x0", + "from": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "to": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "chainId": "0x0", + "value": "0x0", + "data": "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e59279b510f2000000000000000000000000f2ec6b6206f6208e8f9b394efc1a01c1cbde77750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e87480000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf0000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "isCreate": false, + "v": "0x0", + "r": "0x0", + "s": "0x0" + }, + { + "type": 0, + "nonce": 11, + "txHash": "0xed6dff31c5516b3b9d169781865276cf27501aadd45c131bf8c841c5e619e56a", + "gas": 24000, + "gasPrice": "0x0", + "from": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "to": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "chainId": "0x0", + "value": "0x0", + "data": "0x", + "isCreate": false, + "v": "0x0", + "r": "0x0", + "s": "0x0" + } + ], + "storageTrace": { + "rootBefore": "0x16d403e1c55dee3e020457262414ee7a20596922c08cac631385d8ea6d6c2c2b", + "rootAfter": "0x155c42b3ffa9b88987b02bc8f89fb31f2b555bb8bff971d6fcd92e04a144c248", + "proofs": { + "0x1a258d17bF244C4dF02d40343a7626A9D321e105": [ + "0x000f2d6436a450dc3daf4f111527f3e187a9641e7c5cbc4f53a386e6e4114bb8202cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e52c0d8469864d5ee8e0d62944e8dc1de68f78b094d3ef7cf72a21b372866bab0a", + "0x001dcee8089ea21f679f1af199cc93ccb35fdea1257b9ffeac0ae5c89654a0dbce20790d9030fd3f822620f7395f1af3ca53789e7451f811c2364f2b4fa19be9fd", + "0x000d62fbf3a623b87d67d8f97132a8f1759360c03c1b78ea3654238eb6c72fd5dd0742c02437cc0294c49133a28968ba1f913963d9c2892254da675958cd4a4b2e", + "0x0026875849a967c3af8bbd7ac6efb4ef8250efaee44c8bd85ac026d541c7f509ac18ae138a98367696a39f7abe0a53fd3b32283fa843bdc4a2485d65b3b9651670", + "0x0125375fd5ae821cd3e835e2fba4ae79971635b7288d549ba8ba66bea36603686c05080000000000000000000000000000000000000000000000000867000000000000000130644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce1160000030221b0e9cf191ce544dcc5c8927fd08af82cb88be110d9533468ffd2d575aed31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb8351cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2201a258d17bf244c4df02d40343a7626a9d321e105000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x478CDd110520a8e733e2ACF9e543d2c687EA5239": [ + "0x000f2d6436a450dc3daf4f111527f3e187a9641e7c5cbc4f53a386e6e4114bb8202cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e52c0d8469864d5ee8e0d62944e8dc1de68f78b094d3ef7cf72a21b372866bab0a", + "0x000bf7d923da6cc335d4074262981bf4615b43a8eb2a4dd6f2eda4fd8e1503d9311c4e63762bb10044749243a2b52db21797da53a89ba6b8ceb5cee1596150ac45", + "0x002b29daef215b12b331bf75a98e595b8a10a91928f479cca3562db3859315055a1cb697055013d78d58072071584b3e40e8d846948c8e829cbbe9915e4bcf08f0", + "0x00000000000000000000000000000000000000000000000000000000000000000007b1a84d4b19493ba2ca6a59dbc42d0e8559a7f8fb0c066bb8b1d90ceee9ce5c", + "0x0000000000000000000000000000000000000000000000000000000000000000000e9e173703b7c89f67443e861d959df35575c16617ea238fd235d8612f9020ba", + "0x0000000000000000000000000000000000000000000000000000000000000000000ea71dd32b28e075772420197e740ad0ed7990e3f6e5be7f5051f0c0709defce", + "0x000000000000000000000000000000000000000000000000000000000000000000186f00dca57567f28233cef5140efd49b1624b0ec3aef5b7f7ee42f03c3b6231", + "0x0006aac99418e9b09baea374df117e64523910d04427251eec6a9b482b6433bc54186c0fb6b2462a9c851df47ab11054dac43ed5b3f9d8d8a5fcf2fd0f9eb3e147", + "0x0109c2edb6138e8d6dc8f0b8b5ae98dd721c7053061887757f6749c484bddf92fa05080000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4702098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b6486420478cdd110520a8e733e2acf9e543d2c687ea5239000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x5300000000000000000000000000000000000000": [ + "0x000f2d6436a450dc3daf4f111527f3e187a9641e7c5cbc4f53a386e6e4114bb8202cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e52c0d8469864d5ee8e0d62944e8dc1de68f78b094d3ef7cf72a21b372866bab0a", + "0x001dcee8089ea21f679f1af199cc93ccb35fdea1257b9ffeac0ae5c89654a0dbce20790d9030fd3f822620f7395f1af3ca53789e7451f811c2364f2b4fa19be9fd", + "0x000d62fbf3a623b87d67d8f97132a8f1759360c03c1b78ea3654238eb6c72fd5dd0742c02437cc0294c49133a28968ba1f913963d9c2892254da675958cd4a4b2e", + "0x0026875849a967c3af8bbd7ac6efb4ef8250efaee44c8bd85ac026d541c7f509ac18ae138a98367696a39f7abe0a53fd3b32283fa843bdc4a2485d65b3b9651670", + "0x000a3197466e4643551413444b60bbf8ab0ced04566326492fdf1993586eec3fe10000000000000000000000000000000000000000000000000000000000000000", + "0x002143f0cbad38f9696bb9c0be84281e5b517a06983edef7c75485b7a06473c97921dd9af8de7aade9fba53909b1a98ae938236ceec8ba6346ba3ba75c039194d7", + "0x0115d04fcf1fe3d9a4cc7a76b70fafcd7b9304b42108af39d9e500be391563775c0508000000000000000000000000000000000000000000000000064d000000000000000000000000000000000000000000000000000000000000000000000000000000002908ab50d1edc9dac80a344f44731acf807809c545e3388816b97a9882b5d4f974ae902ff6a84825a9cde7cc5f26e8c414e88139716c3423ed908f0a60c996011c70d94e9dc7c85d39f6877b01e59a87c057882957d9fd16c55025dfdcaa4d93205300000000000000000000000000000000000000000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x5300000000000000000000000000000000000002": [ + "0x000f2d6436a450dc3daf4f111527f3e187a9641e7c5cbc4f53a386e6e4114bb8202cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x000150eaa497ee8904a3d2dc8350c03963fb1786ea5253d5cc16f321afcd862cee107e99fa497bffacfb8ab50a44b93c9a74bc7c669323c7fbd0560a657342c55a", + "0x000877a6983a09f78254ca94a086eb673296f5583aa33855bfbdbe6d2fadf0ff0107b2e01ad456a3ec4c88478c604ad6a15c6fb572259e49ef4cc781940fe1375e", + "0x0013b6a97296cf294d19f634904a7fa973d9714b90cc42e0456ad428b7278f338e0accad868d7f4aaa755b29eae6ad523415a9df210ffced28d7d33fa6d5a319b3", + "0x0011de0e672d258d43c785592fc939bc105441bafc9c1455901723358b0a73d5cc29562af63a2293f036058180ce56f5269c6a3d4d18d8e1dc75ef03cb8f51f8b9", + "0x01236b0ff4611519fb52869dd99bedcb730ebe17544687c5064da49f42f741831d05080000000000000000000000000000000000000000000000000873000000000000000000000000000000000000000000000000000000000000000000000000000000001bd955d4ef171429eb11fade67006376e84bf94630ddb9b9948c3f385ce0f05aa48c68219d344cebd30fca18d0777f587e55052ae6161c88fa4c16407211ddaa0d39d683afa3720f93c44224e2b95a5871a5a2207b5323f7fbf8f1862120ba90205300000000000000000000000000000000000002000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x5300000000000000000000000000000000000005": [ + "0x000f2d6436a450dc3daf4f111527f3e187a9641e7c5cbc4f53a386e6e4114bb8202cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e52c0d8469864d5ee8e0d62944e8dc1de68f78b094d3ef7cf72a21b372866bab0a", + "0x000bf7d923da6cc335d4074262981bf4615b43a8eb2a4dd6f2eda4fd8e1503d9311c4e63762bb10044749243a2b52db21797da53a89ba6b8ceb5cee1596150ac45", + "0x002b29daef215b12b331bf75a98e595b8a10a91928f479cca3562db3859315055a1cb697055013d78d58072071584b3e40e8d846948c8e829cbbe9915e4bcf08f0", + "0x011facf302b106912bccc8194dff4cb12139e7f04288d3f5eefb57ccf4d842ba22050800000000000000000000000000000000000000000000000006740000000000000000000000000000000000000000000000000000000000000000002aa86921dcd2c018f4988204e816e17e42d9f9a2a468d8ca70ad453a88d3e371a0d9f743b799a6256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d602c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5205300000000000000000000000000000000000005000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + }, + "storageProofs": { + "0x1a258d17bF244C4dF02d40343a7626A9D321e105": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": [ + "0x001914b8a8cb4d4339d89ed1d5e6cd54ec609082fdf42fadb2d4101f3214f2a2290a1746dfbdf492c00e2854b46eda6adad88ad1b0583997db4121cb7d8e6de5ca", + "0x00084878451370def5a5648862c037adb6ae24f29b9237a1823638ca29d573bdd42446af3926a42a7e8b65f9a5fdd5a00e82e4f2b9684816fdc5d52c238bef604a", + "0x00027f6e365685a83e63cde58e13d22b99c130a578178f8198d755171a2ff97bf303e187b8ea9652424a9d9dac9bc16796838b196f141c6db57136643f22b48468", + "0x00149dad479c283104bb461dcce598d82aacff80a5844d863d8f64e0d3f3e83b1a0000000000000000000000000000000000000000000000000000000000000000", + "0x001f232429e01853a7456bc8bb4cbc3a35c132f7783e2b300306bceb64a44ce81e0000000000000000000000000000000000000000000000000000000000000000", + "0x0027e1c425d61d4468534c93b8aa80c34bbdea9ec2d69df7a730ecacf0089b22640000000000000000000000000000000000000000000000000000000000000000", + "0x001f4bdfdda0df475064a0ea35302dddc6401b8c93afad9a7569afb9f2534750560000000000000000000000000000000000000000000000000000000000000000", + "0x0001fc65caf9a60abae81bcb17c4854fa114100528e73ab1e649fac03ed9fa764e304459eb829e92aa3009534c4eba916b2900783c694385d2e7f87004e7649215", + "0x01249c7b39f739f430be8e1e2cae0f1db06dfe2f8d4cc631d312d5b98efb3e7402010100000000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce84820b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + }, + "0x5300000000000000000000000000000000000000": { + "0x0000000000000000000000000000000000000000000000000000000000000000": [ + "0x0004f706d28ba7344cc73128f383e7f4df4c79f296a56e1bbc24cdfab5bc4cba5c2a970eaf68f6e47243e30bea39087adc0082afa5fd55fc5537baccd03f786953", + "0x00296af6438bc81ff661ef6d1bb16d33d6784e88ae39ff28258e56e4e72d5607052bb61b23d947a704c29df01936e7c557bf9ec541243566a336b43f8aeca37eed", + "0x001750ff1780c9b253cfcbd6274a4f79f3a95819e0856c31f0a6025e30ac3a5b261b73cc5623d88d2687f0fa6006bc823149c779b9e751477a6f2b83773062ddbe", + "0x0004c8c2bf27ee6712f4175555679ff662b9423a1d7205fe31e77999106cfb5a2f0efef64a4ef3d151d1364174e0e72745aeee51bf93fb17f8071e6daf4571a736", + "0x001de6dfed408db1b0cf580652da17c9277834302d9ee2c39ab074675ca61fd9e02ea58d0958b74734329987e16d8afa4d83a7acc46417a7f7dbc1fd42e305b394", + "0x001dd3e7dce636d92fdb4dd8b65cb4e5b8ffd3d64e54a51d93a527826bb1ec3a480000000000000000000000000000000000000000000000000000000000000000", + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + }, + "0x5300000000000000000000000000000000000002": { + "0x0000000000000000000000000000000000000000000000000000000000000001": [ + "0x00024a2d3ee220db30dece4b39c0cffc2ba97ddded52a3f2da3aeed1f485d0a7220000000000000000000000000000000000000000000000000000000000000000", + "0x001da3cd3096ffd62c95bad392eedc1c578e7ccf248898c49c5ed82abb49a4b31a2b63c0d58a64939cf9026618503b904e267eeb0e465e15812b85485e81fb856c", + "0x01232927899d46fea05cc897a4f4671f808aa83c4eaf89396dfab15480fee91e8e010100000000000000000000000000005300000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000004", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000002": [ + "0x00024a2d3ee220db30dece4b39c0cffc2ba97ddded52a3f2da3aeed1f485d0a7220000000000000000000000000000000000000000000000000000000000000000", + "0x001da3cd3096ffd62c95bad392eedc1c578e7ccf248898c49c5ed82abb49a4b31a2b63c0d58a64939cf9026618503b904e267eeb0e465e15812b85485e81fb856c", + "0x012098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864010100000000000000000000000000006f4c950442e1af093bcff730381e63ae9171b87a200000000000000000000000000000000000000000000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000003": [ + "0x00024a2d3ee220db30dece4b39c0cffc2ba97ddded52a3f2da3aeed1f485d0a7220000000000000000000000000000000000000000000000000000000000000000", + "0x001da3cd3096ffd62c95bad392eedc1c578e7ccf248898c49c5ed82abb49a4b31a2b63c0d58a64939cf9026618503b904e267eeb0e465e15812b85485e81fb856c", + "0x012098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864010100000000000000000000000000006f4c950442e1af093bcff730381e63ae9171b87a200000000000000000000000000000000000000000000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + } + } + }, + "executionResults": [ + { + "gas": 24000, + "failed": true, + "returnValue": "", + "from": { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 10, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + "to": { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + "accountAfter": [ + { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 11, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + } + ], + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "byteCode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f1565b610118565b61005b61009336600461070c565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f1565b61020b565b3480156100f557600080fd5b506100ad610235565b61010661029b565b61011661011161033a565b610344565b565b610120610368565b6001600160a01b0316336001600160a01b03161415610157576101548160405180602001604052806000815250600061039b565b50565b6101546100fe565b610167610368565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061039b915050565b505050565b6101c36100fe565b60006101da610368565b6001600160a01b0316336001600160a01b03161415610200576101fb61033a565b905090565b6102086100fe565b90565b610213610368565b6001600160a01b0316336001600160a01b0316141561015757610154816103c6565b600061023f610368565b6001600160a01b0316336001600160a01b03161415610200576101fb610368565b6060610285838360405180606001604052806027815260200161080b6027913961041a565b9392505050565b6001600160a01b03163b151590565b6102a3610368565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104f7565b3660008037600080366000845af43d6000803e808015610363573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103a48361051f565b6000825111806103b15750805b156101c3576103c08383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ef610368565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161055f565b60606001600160a01b0384163b6104825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610331565b600080856001600160a01b03168560405161049d91906107bb565b600060405180830381855af49150503d80600081146104d8576040519150601f19603f3d011682016040523d82523d6000602084013e6104dd565b606091505b50915091506104ed828286610608565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61038c565b61052881610641565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105c45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610331565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610617575081610285565b8251156106275782518084602001fd5b8160405162461bcd60e51b815260040161033191906107d7565b6001600160a01b0381163b6106ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610331565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105e7565b80356001600160a01b03811681146106ec57600080fd5b919050565b60006020828403121561070357600080fd5b610285826106d5565b60008060006040848603121561072157600080fd5b61072a846106d5565b9250602084013567ffffffffffffffff8082111561074757600080fd5b818601915086601f83011261075b57600080fd5b81358181111561076a57600080fd5b87602082850101111561077c57600080fd5b6020830194508093505050509250925092565b60005b838110156107aa578181015183820152602001610792565b838111156103c05750506000910152565b600082516107cd81846020870161078f565b9190910192915050565b60208152600082518060208401526107f681604085016020870161078f565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220366737524a7ac8fa76e3b2cd04bb1e0b8aa75e165c32f59b0076ead59d529de564736f6c634300080a0033", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 320, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 314, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 302, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 7, + "op": "CALLDATASIZE", + "gas": 299, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 8, + "op": "LT", + "gas": 297, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x184" + ] + }, + { + "pc": 9, + "op": "PUSH2", + "gas": 294, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 291, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x4e" + ] + }, + { + "pc": 13, + "op": "PUSH1", + "gas": 281, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 15, + "op": "CALLDATALOAD", + "gas": 278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 16, + "op": "PUSH1", + "gas": 275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592" + ] + }, + { + "pc": 18, + "op": "SHR", + "gas": 272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592", + "0xe0" + ] + }, + { + "pc": 19, + "op": "DUP1", + "gas": 269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 20, + "op": "PUSH4", + "gas": 266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 25, + "op": "EQ", + "gas": 263, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x3659cfe6" + ] + }, + { + "pc": 26, + "op": "PUSH2", + "gas": 260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 29, + "op": "JUMPI", + "gas": 257, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x65" + ] + }, + { + "pc": 30, + "op": "DUP1", + "gas": 247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 31, + "op": "PUSH4", + "gas": 244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 36, + "op": "EQ", + "gas": 241, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x4f1ef286" + ] + }, + { + "pc": 37, + "op": "PUSH2", + "gas": 238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 40, + "op": "JUMPI", + "gas": 235, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x85" + ] + }, + { + "pc": 41, + "op": "DUP1", + "gas": 225, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 42, + "op": "PUSH4", + "gas": 222, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 47, + "op": "EQ", + "gas": 219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x5c60da1b" + ] + }, + { + "pc": 48, + "op": "PUSH2", + "gas": 216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 51, + "op": "JUMPI", + "gas": 213, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x98" + ] + }, + { + "pc": 52, + "op": "DUP1", + "gas": 203, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 53, + "op": "PUSH4", + "gas": 200, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 58, + "op": "EQ", + "gas": 197, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x8f283970" + ] + }, + { + "pc": 59, + "op": "PUSH2", + "gas": 194, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 62, + "op": "JUMPI", + "gas": 191, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xc9" + ] + }, + { + "pc": 63, + "op": "DUP1", + "gas": 181, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 64, + "op": "PUSH4", + "gas": 178, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 69, + "op": "EQ", + "gas": 175, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0xf851a440" + ] + }, + { + "pc": 70, + "op": "PUSH2", + "gas": 172, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 73, + "op": "JUMPI", + "gas": 169, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xe9" + ] + }, + { + "pc": 74, + "op": "PUSH2", + "gas": 159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 77, + "op": "JUMP", + "gas": 156, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5d" + ] + }, + { + "pc": 93, + "op": "JUMPDEST", + "gas": 148, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 94, + "op": "PUSH2", + "gas": 147, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 97, + "op": "PUSH2", + "gas": 144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 100, + "op": "JUMP", + "gas": 141, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0xfe" + ] + }, + { + "pc": 254, + "op": "JUMPDEST", + "gas": 133, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 255, + "op": "PUSH2", + "gas": 132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 258, + "op": "PUSH2", + "gas": 129, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 261, + "op": "JUMP", + "gas": 126, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x29b" + ] + }, + { + "pc": 667, + "op": "JUMPDEST", + "gas": 118, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 668, + "op": "PUSH2", + "gas": 117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 671, + "op": "PUSH2", + "gas": 114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 674, + "op": "JUMP", + "gas": 111, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x368" + ] + }, + { + "pc": 872, + "op": "JUMPDEST", + "gas": 103, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 873, + "op": "PUSH1", + "gas": 102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 875, + "op": "PUSH32", + "gas": 99, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0" + ] + }, + { + "pc": 908, + "op": "JUMPDEST", + "gas": 96, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ] + }, + { + "pc": 909, + "op": "SLOAD", + "gas": 95, + "gasCost": 2100, + "depth": 1, + "error": "out of gas", + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + }, + "extraData": { + "proofList": [ + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151, + "storage": { + "key": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "value": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + } + } + ] + } + } + ] + } + ], + "withdraw_trie_root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } \ No newline at end of file diff --git a/rollup/rollup_sync_service/testdata/blockTrace_05.json b/rollup/rollup_sync_service/testdata/blockTrace_05.json new file mode 100644 index 000000000000..a295c325d23e --- /dev/null +++ b/rollup/rollup_sync_service/testdata/blockTrace_05.json @@ -0,0 +1,3713 @@ +{ + "chainID": 222222, + "version": "3.2.1-alpha-3926c3be", + "coinbase": { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + }, + "header": { + "parentHash": "0x13c3a48df629a7e59b48bb1c86acf39f54a3675f53eab1cd55ffab8c79316509", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "miner": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x03600db82d06d6f0615c9a37c3fb3a2aab90214859e273f866ed75cf6cddac6b", + "transactionsRoot": "0xad02a6564c31d174daaf8d1ff9989e389551dc28c9fab56a6c9538a11b51e72b", + "receiptsRoot": "0xb34de12e8c48e5f31b5b9360fa683d4a604035919de337c4ca04ab2cffa63625", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x2", + "number": "0x11", + "gasLimit": "0x7a1200", + "gasUsed": "0x1d4c0", + "timestamp": "0x646b6ed0", + "extraData": "0xd983030201846765746889676f312e31382e3130856c696e7578000000000000de7d5264f79a11dee9fd011f46b9353dee5ca5fa2c90b1151d276b0de78dcf8e442fb021951f6891532a93a34e4d34e35ac417681caa40c3f209a88e46b33f7401", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": null, + "hash": "0x003fee335455c0c293dda17ea9365fe0caa94071ed7216baf61f7aeb808e8a28" + }, + "row_consumption": [ + ], + "transactions": [ + { + "type": 126, + "nonce": 37, + "txHash": "0x9f546503cfc8a8ab4ad1bed5404fd9749f607702842a2a991f7378041854183f", + "gas": 24000, + "gasPrice": "0x0", + "from": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "to": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "chainId": "0x0", + "value": "0x0", + "data": "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e59279b510f2000000000000000000000000f2ec6b6206f6208e8f9b394efc1a01c1cbde77750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e87480000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf0000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "isCreate": false, + "v": "0x0", + "r": "0x0", + "s": "0x0" + }, + { + "type": 126, + "nonce": 38, + "txHash": "0x932534fde469ab4f5e177b6cf83315e9ad4ff58163c61d4c998213904ed23c7f", + "gas": 24000, + "gasPrice": "0x0", + "from": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "to": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "chainId": "0x0", + "value": "0x0", + "data": "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e59279b510f2000000000000000000000000f2ec6b6206f6208e8f9b394efc1a01c1cbde77750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e87480000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf0000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "isCreate": false, + "v": "0x0", + "r": "0x0", + "s": "0x0" + }, + { + "type": 126, + "nonce": 39, + "txHash": "0x385fe2f4ee6060d891bc4b9ee0ac8a631097fe1c3d4b9a5327c7b870682e7552", + "gas": 24000, + "gasPrice": "0x0", + "from": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "to": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "chainId": "0x0", + "value": "0x0", + "data": "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e59279b510f2000000000000000000000000f2ec6b6206f6208e8f9b394efc1a01c1cbde77750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e87480000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf0000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "isCreate": false, + "v": "0x0", + "r": "0x0", + "s": "0x0" + }, + { + "type": 126, + "nonce": 40, + "txHash": "0x3893c2d9caad874ccd3da9d89b61aa7e77a4b94f89855cb1596eee1147cd6f73", + "gas": 24000, + "gasPrice": "0x0", + "from": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "to": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "chainId": "0x0", + "value": "0x0", + "data": "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e59279b510f2000000000000000000000000f2ec6b6206f6208e8f9b394efc1a01c1cbde77750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e87480000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf0000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "isCreate": false, + "v": "0x0", + "r": "0x0", + "s": "0x0" + }, + { + "type": 126, + "nonce": 41, + "txHash": "0x7eaa620a880d881142e6716a8a526d4c16af21cc26c9058ff5bb589aa5d87523", + "gas": 24000, + "gasPrice": "0x0", + "from": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "to": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "chainId": "0x0", + "value": "0x0", + "data": "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e59279b510f2000000000000000000000000f2ec6b6206f6208e8f9b394efc1a01c1cbde77750000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e87480000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf0000000000000000000000002b5ad5c4795c026514f8317c7a215e218dccd6cf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "isCreate": false, + "v": "0x0", + "r": "0x0", + "s": "0x0" + } + ], + "storageTrace": { + "rootBefore": "0x175df7d5c86d17089e01563e4b2cb9aece5b5ab51931a0196ca52f4c05c0baa0", + "rootAfter": "0x03600db82d06d6f0615c9a37c3fb3a2aab90214859e273f866ed75cf6cddac6b", + "proofs": { + "0x1a258d17bF244C4dF02d40343a7626A9D321e105": [ + "0x00219880aab690429224e09d6931814a6919738db08a339ff0b54478161730bdb42cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e505bdf4a0e62b30bba833f966fd24562ac54f109509962ecf29aed0b67d08f4f3", + "0x001dcee8089ea21f679f1af199cc93ccb35fdea1257b9ffeac0ae5c89654a0dbce20790d9030fd3f822620f7395f1af3ca53789e7451f811c2364f2b4fa19be9fd", + "0x000d62fbf3a623b87d67d8f97132a8f1759360c03c1b78ea3654238eb6c72fd5dd0742c02437cc0294c49133a28968ba1f913963d9c2892254da675958cd4a4b2e", + "0x0026875849a967c3af8bbd7ac6efb4ef8250efaee44c8bd85ac026d541c7f509ac18ae138a98367696a39f7abe0a53fd3b32283fa843bdc4a2485d65b3b9651670", + "0x0125375fd5ae821cd3e835e2fba4ae79971635b7288d549ba8ba66bea36603686c05080000000000000000000000000000000000000000000000000867000000000000000130644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce1160000030221b0e9cf191ce544dcc5c8927fd08af82cb88be110d9533468ffd2d575aed31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb8351cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2201a258d17bf244c4df02d40343a7626a9d321e105000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x478CDd110520a8e733e2ACF9e543d2c687EA5239": [ + "0x00219880aab690429224e09d6931814a6919738db08a339ff0b54478161730bdb42cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e505bdf4a0e62b30bba833f966fd24562ac54f109509962ecf29aed0b67d08f4f3", + "0x00150fe477116ceddc889b77cdf43c38b46e00f309f80cbed73d478cf012b23f1b1c4e63762bb10044749243a2b52db21797da53a89ba6b8ceb5cee1596150ac45", + "0x002b29daef215b12b331bf75a98e595b8a10a91928f479cca3562db3859315055a153c7f3aa910c0b391c34f4d84236061fb73c23109153ca6b5d590382bb339ed", + "0x00000000000000000000000000000000000000000000000000000000000000000025aca70325f2e717478dafb557c316b85719987d3585dc74479f00c8a780d154", + "0x0000000000000000000000000000000000000000000000000000000000000000001207de03b3476b45074ef61e712923ae8686ba20d935e187ce14ee8705c12997", + "0x00000000000000000000000000000000000000000000000000000000000000000012f68b93918e4f78f57292abd9ee9dd50700e086e1235b8d00bc20b504d9d636", + "0x00000000000000000000000000000000000000000000000000000000000000000002c2892a683e4c55452bac236671a3d3d950993a16f3bfe1fe0dc0e7eb905882", + "0x000bdc67dc26f0c31dff4f27c2189c4fa2f805debefed3becadcd996900f74353b186c0fb6b2462a9c851df47ab11054dac43ed5b3f9d8d8a5fcf2fd0f9eb3e147", + "0x0109c2edb6138e8d6dc8f0b8b5ae98dd721c7053061887757f6749c484bddf92fa05080000000000000000000000000000000000000000000000000000000000000000002500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4702098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b6486420478cdd110520a8e733e2acf9e543d2c687ea5239000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x5300000000000000000000000000000000000000": [ + "0x00219880aab690429224e09d6931814a6919738db08a339ff0b54478161730bdb42cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e505bdf4a0e62b30bba833f966fd24562ac54f109509962ecf29aed0b67d08f4f3", + "0x001dcee8089ea21f679f1af199cc93ccb35fdea1257b9ffeac0ae5c89654a0dbce20790d9030fd3f822620f7395f1af3ca53789e7451f811c2364f2b4fa19be9fd", + "0x000d62fbf3a623b87d67d8f97132a8f1759360c03c1b78ea3654238eb6c72fd5dd0742c02437cc0294c49133a28968ba1f913963d9c2892254da675958cd4a4b2e", + "0x0026875849a967c3af8bbd7ac6efb4ef8250efaee44c8bd85ac026d541c7f509ac18ae138a98367696a39f7abe0a53fd3b32283fa843bdc4a2485d65b3b9651670", + "0x000a3197466e4643551413444b60bbf8ab0ced04566326492fdf1993586eec3fe10000000000000000000000000000000000000000000000000000000000000000", + "0x002143f0cbad38f9696bb9c0be84281e5b517a06983edef7c75485b7a06473c97921dd9af8de7aade9fba53909b1a98ae938236ceec8ba6346ba3ba75c039194d7", + "0x0115d04fcf1fe3d9a4cc7a76b70fafcd7b9304b42108af39d9e500be391563775c0508000000000000000000000000000000000000000000000000064d000000000000000000000000000000000000000000000000000000000000000000000000000000002908ab50d1edc9dac80a344f44731acf807809c545e3388816b97a9882b5d4f974ae902ff6a84825a9cde7cc5f26e8c414e88139716c3423ed908f0a60c996011c70d94e9dc7c85d39f6877b01e59a87c057882957d9fd16c55025dfdcaa4d93205300000000000000000000000000000000000000000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x5300000000000000000000000000000000000002": [ + "0x00219880aab690429224e09d6931814a6919738db08a339ff0b54478161730bdb42cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x000150eaa497ee8904a3d2dc8350c03963fb1786ea5253d5cc16f321afcd862cee107e99fa497bffacfb8ab50a44b93c9a74bc7c669323c7fbd0560a657342c55a", + "0x000877a6983a09f78254ca94a086eb673296f5583aa33855bfbdbe6d2fadf0ff0107b2e01ad456a3ec4c88478c604ad6a15c6fb572259e49ef4cc781940fe1375e", + "0x0013b6a97296cf294d19f634904a7fa973d9714b90cc42e0456ad428b7278f338e0accad868d7f4aaa755b29eae6ad523415a9df210ffced28d7d33fa6d5a319b3", + "0x0011de0e672d258d43c785592fc939bc105441bafc9c1455901723358b0a73d5cc29562af63a2293f036058180ce56f5269c6a3d4d18d8e1dc75ef03cb8f51f8b9", + "0x01236b0ff4611519fb52869dd99bedcb730ebe17544687c5064da49f42f741831d05080000000000000000000000000000000000000000000000000873000000000000000000000000000000000000000000000000000000000000000000000000000000001bd955d4ef171429eb11fade67006376e84bf94630ddb9b9948c3f385ce0f05aa48c68219d344cebd30fca18d0777f587e55052ae6161c88fa4c16407211ddaa0d39d683afa3720f93c44224e2b95a5871a5a2207b5323f7fbf8f1862120ba90205300000000000000000000000000000000000002000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x5300000000000000000000000000000000000005": [ + "0x00219880aab690429224e09d6931814a6919738db08a339ff0b54478161730bdb42cc33de5af63f5deca2409302103a4523463a3a16529835d526795e8966079db", + "0x0029ce00b3e5ddca3bd22d3a923b95239ed11243363803b8e1f5a89fb37ee3c6e505bdf4a0e62b30bba833f966fd24562ac54f109509962ecf29aed0b67d08f4f3", + "0x00150fe477116ceddc889b77cdf43c38b46e00f309f80cbed73d478cf012b23f1b1c4e63762bb10044749243a2b52db21797da53a89ba6b8ceb5cee1596150ac45", + "0x002b29daef215b12b331bf75a98e595b8a10a91928f479cca3562db3859315055a153c7f3aa910c0b391c34f4d84236061fb73c23109153ca6b5d590382bb339ed", + "0x011facf302b106912bccc8194dff4cb12139e7f04288d3f5eefb57ccf4d842ba22050800000000000000000000000000000000000000000000000006740000000000000000000000000000000000000000000000000000000000000000002aa86921dcd2c018f4988204e816e17e42d9f9a2a468d8ca70ad453a88d3e371a0d9f743b799a6256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d602c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5205300000000000000000000000000000000000005000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + }, + "storageProofs": { + "0x1a258d17bF244C4dF02d40343a7626A9D321e105": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": [ + "0x001914b8a8cb4d4339d89ed1d5e6cd54ec609082fdf42fadb2d4101f3214f2a2290a1746dfbdf492c00e2854b46eda6adad88ad1b0583997db4121cb7d8e6de5ca", + "0x00084878451370def5a5648862c037adb6ae24f29b9237a1823638ca29d573bdd42446af3926a42a7e8b65f9a5fdd5a00e82e4f2b9684816fdc5d52c238bef604a", + "0x00027f6e365685a83e63cde58e13d22b99c130a578178f8198d755171a2ff97bf303e187b8ea9652424a9d9dac9bc16796838b196f141c6db57136643f22b48468", + "0x00149dad479c283104bb461dcce598d82aacff80a5844d863d8f64e0d3f3e83b1a0000000000000000000000000000000000000000000000000000000000000000", + "0x001f232429e01853a7456bc8bb4cbc3a35c132f7783e2b300306bceb64a44ce81e0000000000000000000000000000000000000000000000000000000000000000", + "0x0027e1c425d61d4468534c93b8aa80c34bbdea9ec2d69df7a730ecacf0089b22640000000000000000000000000000000000000000000000000000000000000000", + "0x001f4bdfdda0df475064a0ea35302dddc6401b8c93afad9a7569afb9f2534750560000000000000000000000000000000000000000000000000000000000000000", + "0x0001fc65caf9a60abae81bcb17c4854fa114100528e73ab1e649fac03ed9fa764e304459eb829e92aa3009534c4eba916b2900783c694385d2e7f87004e7649215", + "0x01249c7b39f739f430be8e1e2cae0f1db06dfe2f8d4cc631d312d5b98efb3e7402010100000000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce84820b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + }, + "0x5300000000000000000000000000000000000000": { + "0x0000000000000000000000000000000000000000000000000000000000000000": [ + "0x0004f706d28ba7344cc73128f383e7f4df4c79f296a56e1bbc24cdfab5bc4cba5c2a970eaf68f6e47243e30bea39087adc0082afa5fd55fc5537baccd03f786953", + "0x00296af6438bc81ff661ef6d1bb16d33d6784e88ae39ff28258e56e4e72d5607052bb61b23d947a704c29df01936e7c557bf9ec541243566a336b43f8aeca37eed", + "0x001750ff1780c9b253cfcbd6274a4f79f3a95819e0856c31f0a6025e30ac3a5b261b73cc5623d88d2687f0fa6006bc823149c779b9e751477a6f2b83773062ddbe", + "0x0004c8c2bf27ee6712f4175555679ff662b9423a1d7205fe31e77999106cfb5a2f0efef64a4ef3d151d1364174e0e72745aeee51bf93fb17f8071e6daf4571a736", + "0x001de6dfed408db1b0cf580652da17c9277834302d9ee2c39ab074675ca61fd9e02ea58d0958b74734329987e16d8afa4d83a7acc46417a7f7dbc1fd42e305b394", + "0x001dd3e7dce636d92fdb4dd8b65cb4e5b8ffd3d64e54a51d93a527826bb1ec3a480000000000000000000000000000000000000000000000000000000000000000", + "0x02", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + }, + "0x5300000000000000000000000000000000000002": { + "0x0000000000000000000000000000000000000000000000000000000000000001": [ + "0x00024a2d3ee220db30dece4b39c0cffc2ba97ddded52a3f2da3aeed1f485d0a7220000000000000000000000000000000000000000000000000000000000000000", + "0x001da3cd3096ffd62c95bad392eedc1c578e7ccf248898c49c5ed82abb49a4b31a2b63c0d58a64939cf9026618503b904e267eeb0e465e15812b85485e81fb856c", + "0x01232927899d46fea05cc897a4f4671f808aa83c4eaf89396dfab15480fee91e8e010100000000000000000000000000005300000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000004", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000002": [ + "0x00024a2d3ee220db30dece4b39c0cffc2ba97ddded52a3f2da3aeed1f485d0a7220000000000000000000000000000000000000000000000000000000000000000", + "0x001da3cd3096ffd62c95bad392eedc1c578e7ccf248898c49c5ed82abb49a4b31a2b63c0d58a64939cf9026618503b904e267eeb0e465e15812b85485e81fb856c", + "0x012098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864010100000000000000000000000000006f4c950442e1af093bcff730381e63ae9171b87a200000000000000000000000000000000000000000000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ], + "0x0000000000000000000000000000000000000000000000000000000000000003": [ + "0x00024a2d3ee220db30dece4b39c0cffc2ba97ddded52a3f2da3aeed1f485d0a7220000000000000000000000000000000000000000000000000000000000000000", + "0x001da3cd3096ffd62c95bad392eedc1c578e7ccf248898c49c5ed82abb49a4b31a2b63c0d58a64939cf9026618503b904e267eeb0e465e15812b85485e81fb856c", + "0x012098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864010100000000000000000000000000006f4c950442e1af093bcff730381e63ae9171b87a200000000000000000000000000000000000000000000000000000000000000000", + "0x5448495320495320534f4d45204d4147494320425954455320464f5220534d54206d3172525867503278704449" + ] + } + } + }, + "executionResults": [ + { + "gas": 24000, + "failed": true, + "returnValue": "", + "from": { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 37, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + "to": { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + "accountAfter": [ + { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 38, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + } + ], + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "byteCode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f1565b610118565b61005b61009336600461070c565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f1565b61020b565b3480156100f557600080fd5b506100ad610235565b61010661029b565b61011661011161033a565b610344565b565b610120610368565b6001600160a01b0316336001600160a01b03161415610157576101548160405180602001604052806000815250600061039b565b50565b6101546100fe565b610167610368565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061039b915050565b505050565b6101c36100fe565b60006101da610368565b6001600160a01b0316336001600160a01b03161415610200576101fb61033a565b905090565b6102086100fe565b90565b610213610368565b6001600160a01b0316336001600160a01b0316141561015757610154816103c6565b600061023f610368565b6001600160a01b0316336001600160a01b03161415610200576101fb610368565b6060610285838360405180606001604052806027815260200161080b6027913961041a565b9392505050565b6001600160a01b03163b151590565b6102a3610368565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104f7565b3660008037600080366000845af43d6000803e808015610363573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103a48361051f565b6000825111806103b15750805b156101c3576103c08383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ef610368565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161055f565b60606001600160a01b0384163b6104825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610331565b600080856001600160a01b03168560405161049d91906107bb565b600060405180830381855af49150503d80600081146104d8576040519150601f19603f3d011682016040523d82523d6000602084013e6104dd565b606091505b50915091506104ed828286610608565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61038c565b61052881610641565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105c45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610331565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610617575081610285565b8251156106275782518084602001fd5b8160405162461bcd60e51b815260040161033191906107d7565b6001600160a01b0381163b6106ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610331565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105e7565b80356001600160a01b03811681146106ec57600080fd5b919050565b60006020828403121561070357600080fd5b610285826106d5565b60008060006040848603121561072157600080fd5b61072a846106d5565b9250602084013567ffffffffffffffff8082111561074757600080fd5b818601915086601f83011261075b57600080fd5b81358181111561076a57600080fd5b87602082850101111561077c57600080fd5b6020830194508093505050509250925092565b60005b838110156107aa578181015183820152602001610792565b838111156103c05750506000910152565b600082516107cd81846020870161078f565b9190910192915050565b60208152600082518060208401526107f681604085016020870161078f565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220366737524a7ac8fa76e3b2cd04bb1e0b8aa75e165c32f59b0076ead59d529de564736f6c634300080a0033", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 320, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 314, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 302, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 7, + "op": "CALLDATASIZE", + "gas": 299, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 8, + "op": "LT", + "gas": 297, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x184" + ] + }, + { + "pc": 9, + "op": "PUSH2", + "gas": 294, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 291, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x4e" + ] + }, + { + "pc": 13, + "op": "PUSH1", + "gas": 281, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 15, + "op": "CALLDATALOAD", + "gas": 278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 16, + "op": "PUSH1", + "gas": 275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592" + ] + }, + { + "pc": 18, + "op": "SHR", + "gas": 272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592", + "0xe0" + ] + }, + { + "pc": 19, + "op": "DUP1", + "gas": 269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 20, + "op": "PUSH4", + "gas": 266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 25, + "op": "EQ", + "gas": 263, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x3659cfe6" + ] + }, + { + "pc": 26, + "op": "PUSH2", + "gas": 260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 29, + "op": "JUMPI", + "gas": 257, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x65" + ] + }, + { + "pc": 30, + "op": "DUP1", + "gas": 247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 31, + "op": "PUSH4", + "gas": 244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 36, + "op": "EQ", + "gas": 241, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x4f1ef286" + ] + }, + { + "pc": 37, + "op": "PUSH2", + "gas": 238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 40, + "op": "JUMPI", + "gas": 235, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x85" + ] + }, + { + "pc": 41, + "op": "DUP1", + "gas": 225, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 42, + "op": "PUSH4", + "gas": 222, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 47, + "op": "EQ", + "gas": 219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x5c60da1b" + ] + }, + { + "pc": 48, + "op": "PUSH2", + "gas": 216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 51, + "op": "JUMPI", + "gas": 213, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x98" + ] + }, + { + "pc": 52, + "op": "DUP1", + "gas": 203, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 53, + "op": "PUSH4", + "gas": 200, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 58, + "op": "EQ", + "gas": 197, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x8f283970" + ] + }, + { + "pc": 59, + "op": "PUSH2", + "gas": 194, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 62, + "op": "JUMPI", + "gas": 191, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xc9" + ] + }, + { + "pc": 63, + "op": "DUP1", + "gas": 181, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 64, + "op": "PUSH4", + "gas": 178, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 69, + "op": "EQ", + "gas": 175, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0xf851a440" + ] + }, + { + "pc": 70, + "op": "PUSH2", + "gas": 172, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 73, + "op": "JUMPI", + "gas": 169, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xe9" + ] + }, + { + "pc": 74, + "op": "PUSH2", + "gas": 159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 77, + "op": "JUMP", + "gas": 156, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5d" + ] + }, + { + "pc": 93, + "op": "JUMPDEST", + "gas": 148, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 94, + "op": "PUSH2", + "gas": 147, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 97, + "op": "PUSH2", + "gas": 144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 100, + "op": "JUMP", + "gas": 141, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0xfe" + ] + }, + { + "pc": 254, + "op": "JUMPDEST", + "gas": 133, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 255, + "op": "PUSH2", + "gas": 132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 258, + "op": "PUSH2", + "gas": 129, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 261, + "op": "JUMP", + "gas": 126, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x29b" + ] + }, + { + "pc": 667, + "op": "JUMPDEST", + "gas": 118, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 668, + "op": "PUSH2", + "gas": 117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 671, + "op": "PUSH2", + "gas": 114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 674, + "op": "JUMP", + "gas": 111, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x368" + ] + }, + { + "pc": 872, + "op": "JUMPDEST", + "gas": 103, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 873, + "op": "PUSH1", + "gas": 102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 875, + "op": "PUSH32", + "gas": 99, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0" + ] + }, + { + "pc": 908, + "op": "JUMPDEST", + "gas": 96, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ] + }, + { + "pc": 909, + "op": "SLOAD", + "gas": 95, + "gasCost": 2100, + "depth": 1, + "error": "out of gas", + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + }, + "extraData": { + "proofList": [ + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151, + "storage": { + "key": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "value": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + } + } + ] + } + } + ] + }, + { + "gas": 24000, + "failed": true, + "returnValue": "", + "from": { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 38, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + "to": { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + "accountAfter": [ + { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 39, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + } + ], + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "byteCode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f1565b610118565b61005b61009336600461070c565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f1565b61020b565b3480156100f557600080fd5b506100ad610235565b61010661029b565b61011661011161033a565b610344565b565b610120610368565b6001600160a01b0316336001600160a01b03161415610157576101548160405180602001604052806000815250600061039b565b50565b6101546100fe565b610167610368565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061039b915050565b505050565b6101c36100fe565b60006101da610368565b6001600160a01b0316336001600160a01b03161415610200576101fb61033a565b905090565b6102086100fe565b90565b610213610368565b6001600160a01b0316336001600160a01b0316141561015757610154816103c6565b600061023f610368565b6001600160a01b0316336001600160a01b03161415610200576101fb610368565b6060610285838360405180606001604052806027815260200161080b6027913961041a565b9392505050565b6001600160a01b03163b151590565b6102a3610368565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104f7565b3660008037600080366000845af43d6000803e808015610363573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103a48361051f565b6000825111806103b15750805b156101c3576103c08383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ef610368565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161055f565b60606001600160a01b0384163b6104825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610331565b600080856001600160a01b03168560405161049d91906107bb565b600060405180830381855af49150503d80600081146104d8576040519150601f19603f3d011682016040523d82523d6000602084013e6104dd565b606091505b50915091506104ed828286610608565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61038c565b61052881610641565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105c45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610331565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610617575081610285565b8251156106275782518084602001fd5b8160405162461bcd60e51b815260040161033191906107d7565b6001600160a01b0381163b6106ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610331565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105e7565b80356001600160a01b03811681146106ec57600080fd5b919050565b60006020828403121561070357600080fd5b610285826106d5565b60008060006040848603121561072157600080fd5b61072a846106d5565b9250602084013567ffffffffffffffff8082111561074757600080fd5b818601915086601f83011261075b57600080fd5b81358181111561076a57600080fd5b87602082850101111561077c57600080fd5b6020830194508093505050509250925092565b60005b838110156107aa578181015183820152602001610792565b838111156103c05750506000910152565b600082516107cd81846020870161078f565b9190910192915050565b60208152600082518060208401526107f681604085016020870161078f565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220366737524a7ac8fa76e3b2cd04bb1e0b8aa75e165c32f59b0076ead59d529de564736f6c634300080a0033", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 320, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 314, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 302, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 7, + "op": "CALLDATASIZE", + "gas": 299, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 8, + "op": "LT", + "gas": 297, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x184" + ] + }, + { + "pc": 9, + "op": "PUSH2", + "gas": 294, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 291, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x4e" + ] + }, + { + "pc": 13, + "op": "PUSH1", + "gas": 281, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 15, + "op": "CALLDATALOAD", + "gas": 278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 16, + "op": "PUSH1", + "gas": 275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592" + ] + }, + { + "pc": 18, + "op": "SHR", + "gas": 272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592", + "0xe0" + ] + }, + { + "pc": 19, + "op": "DUP1", + "gas": 269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 20, + "op": "PUSH4", + "gas": 266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 25, + "op": "EQ", + "gas": 263, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x3659cfe6" + ] + }, + { + "pc": 26, + "op": "PUSH2", + "gas": 260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 29, + "op": "JUMPI", + "gas": 257, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x65" + ] + }, + { + "pc": 30, + "op": "DUP1", + "gas": 247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 31, + "op": "PUSH4", + "gas": 244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 36, + "op": "EQ", + "gas": 241, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x4f1ef286" + ] + }, + { + "pc": 37, + "op": "PUSH2", + "gas": 238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 40, + "op": "JUMPI", + "gas": 235, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x85" + ] + }, + { + "pc": 41, + "op": "DUP1", + "gas": 225, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 42, + "op": "PUSH4", + "gas": 222, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 47, + "op": "EQ", + "gas": 219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x5c60da1b" + ] + }, + { + "pc": 48, + "op": "PUSH2", + "gas": 216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 51, + "op": "JUMPI", + "gas": 213, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x98" + ] + }, + { + "pc": 52, + "op": "DUP1", + "gas": 203, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 53, + "op": "PUSH4", + "gas": 200, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 58, + "op": "EQ", + "gas": 197, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x8f283970" + ] + }, + { + "pc": 59, + "op": "PUSH2", + "gas": 194, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 62, + "op": "JUMPI", + "gas": 191, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xc9" + ] + }, + { + "pc": 63, + "op": "DUP1", + "gas": 181, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 64, + "op": "PUSH4", + "gas": 178, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 69, + "op": "EQ", + "gas": 175, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0xf851a440" + ] + }, + { + "pc": 70, + "op": "PUSH2", + "gas": 172, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 73, + "op": "JUMPI", + "gas": 169, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xe9" + ] + }, + { + "pc": 74, + "op": "PUSH2", + "gas": 159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 77, + "op": "JUMP", + "gas": 156, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5d" + ] + }, + { + "pc": 93, + "op": "JUMPDEST", + "gas": 148, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 94, + "op": "PUSH2", + "gas": 147, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 97, + "op": "PUSH2", + "gas": 144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 100, + "op": "JUMP", + "gas": 141, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0xfe" + ] + }, + { + "pc": 254, + "op": "JUMPDEST", + "gas": 133, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 255, + "op": "PUSH2", + "gas": 132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 258, + "op": "PUSH2", + "gas": 129, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 261, + "op": "JUMP", + "gas": 126, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x29b" + ] + }, + { + "pc": 667, + "op": "JUMPDEST", + "gas": 118, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 668, + "op": "PUSH2", + "gas": 117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 671, + "op": "PUSH2", + "gas": 114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 674, + "op": "JUMP", + "gas": 111, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x368" + ] + }, + { + "pc": 872, + "op": "JUMPDEST", + "gas": 103, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 873, + "op": "PUSH1", + "gas": 102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 875, + "op": "PUSH32", + "gas": 99, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0" + ] + }, + { + "pc": 908, + "op": "JUMPDEST", + "gas": 96, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ] + }, + { + "pc": 909, + "op": "SLOAD", + "gas": 95, + "gasCost": 2100, + "depth": 1, + "error": "out of gas", + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + }, + "extraData": { + "proofList": [ + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151, + "storage": { + "key": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "value": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + } + } + ] + } + } + ] + }, + { + "gas": 24000, + "failed": true, + "returnValue": "", + "from": { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 39, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + "to": { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + "accountAfter": [ + { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 40, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + } + ], + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "byteCode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f1565b610118565b61005b61009336600461070c565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f1565b61020b565b3480156100f557600080fd5b506100ad610235565b61010661029b565b61011661011161033a565b610344565b565b610120610368565b6001600160a01b0316336001600160a01b03161415610157576101548160405180602001604052806000815250600061039b565b50565b6101546100fe565b610167610368565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061039b915050565b505050565b6101c36100fe565b60006101da610368565b6001600160a01b0316336001600160a01b03161415610200576101fb61033a565b905090565b6102086100fe565b90565b610213610368565b6001600160a01b0316336001600160a01b0316141561015757610154816103c6565b600061023f610368565b6001600160a01b0316336001600160a01b03161415610200576101fb610368565b6060610285838360405180606001604052806027815260200161080b6027913961041a565b9392505050565b6001600160a01b03163b151590565b6102a3610368565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104f7565b3660008037600080366000845af43d6000803e808015610363573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103a48361051f565b6000825111806103b15750805b156101c3576103c08383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ef610368565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161055f565b60606001600160a01b0384163b6104825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610331565b600080856001600160a01b03168560405161049d91906107bb565b600060405180830381855af49150503d80600081146104d8576040519150601f19603f3d011682016040523d82523d6000602084013e6104dd565b606091505b50915091506104ed828286610608565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61038c565b61052881610641565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105c45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610331565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610617575081610285565b8251156106275782518084602001fd5b8160405162461bcd60e51b815260040161033191906107d7565b6001600160a01b0381163b6106ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610331565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105e7565b80356001600160a01b03811681146106ec57600080fd5b919050565b60006020828403121561070357600080fd5b610285826106d5565b60008060006040848603121561072157600080fd5b61072a846106d5565b9250602084013567ffffffffffffffff8082111561074757600080fd5b818601915086601f83011261075b57600080fd5b81358181111561076a57600080fd5b87602082850101111561077c57600080fd5b6020830194508093505050509250925092565b60005b838110156107aa578181015183820152602001610792565b838111156103c05750506000910152565b600082516107cd81846020870161078f565b9190910192915050565b60208152600082518060208401526107f681604085016020870161078f565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220366737524a7ac8fa76e3b2cd04bb1e0b8aa75e165c32f59b0076ead59d529de564736f6c634300080a0033", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 320, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 314, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 302, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 7, + "op": "CALLDATASIZE", + "gas": 299, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 8, + "op": "LT", + "gas": 297, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x184" + ] + }, + { + "pc": 9, + "op": "PUSH2", + "gas": 294, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 291, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x4e" + ] + }, + { + "pc": 13, + "op": "PUSH1", + "gas": 281, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 15, + "op": "CALLDATALOAD", + "gas": 278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 16, + "op": "PUSH1", + "gas": 275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592" + ] + }, + { + "pc": 18, + "op": "SHR", + "gas": 272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592", + "0xe0" + ] + }, + { + "pc": 19, + "op": "DUP1", + "gas": 269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 20, + "op": "PUSH4", + "gas": 266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 25, + "op": "EQ", + "gas": 263, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x3659cfe6" + ] + }, + { + "pc": 26, + "op": "PUSH2", + "gas": 260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 29, + "op": "JUMPI", + "gas": 257, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x65" + ] + }, + { + "pc": 30, + "op": "DUP1", + "gas": 247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 31, + "op": "PUSH4", + "gas": 244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 36, + "op": "EQ", + "gas": 241, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x4f1ef286" + ] + }, + { + "pc": 37, + "op": "PUSH2", + "gas": 238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 40, + "op": "JUMPI", + "gas": 235, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x85" + ] + }, + { + "pc": 41, + "op": "DUP1", + "gas": 225, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 42, + "op": "PUSH4", + "gas": 222, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 47, + "op": "EQ", + "gas": 219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x5c60da1b" + ] + }, + { + "pc": 48, + "op": "PUSH2", + "gas": 216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 51, + "op": "JUMPI", + "gas": 213, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x98" + ] + }, + { + "pc": 52, + "op": "DUP1", + "gas": 203, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 53, + "op": "PUSH4", + "gas": 200, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 58, + "op": "EQ", + "gas": 197, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x8f283970" + ] + }, + { + "pc": 59, + "op": "PUSH2", + "gas": 194, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 62, + "op": "JUMPI", + "gas": 191, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xc9" + ] + }, + { + "pc": 63, + "op": "DUP1", + "gas": 181, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 64, + "op": "PUSH4", + "gas": 178, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 69, + "op": "EQ", + "gas": 175, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0xf851a440" + ] + }, + { + "pc": 70, + "op": "PUSH2", + "gas": 172, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 73, + "op": "JUMPI", + "gas": 169, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xe9" + ] + }, + { + "pc": 74, + "op": "PUSH2", + "gas": 159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 77, + "op": "JUMP", + "gas": 156, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5d" + ] + }, + { + "pc": 93, + "op": "JUMPDEST", + "gas": 148, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 94, + "op": "PUSH2", + "gas": 147, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 97, + "op": "PUSH2", + "gas": 144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 100, + "op": "JUMP", + "gas": 141, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0xfe" + ] + }, + { + "pc": 254, + "op": "JUMPDEST", + "gas": 133, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 255, + "op": "PUSH2", + "gas": 132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 258, + "op": "PUSH2", + "gas": 129, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 261, + "op": "JUMP", + "gas": 126, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x29b" + ] + }, + { + "pc": 667, + "op": "JUMPDEST", + "gas": 118, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 668, + "op": "PUSH2", + "gas": 117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 671, + "op": "PUSH2", + "gas": 114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 674, + "op": "JUMP", + "gas": 111, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x368" + ] + }, + { + "pc": 872, + "op": "JUMPDEST", + "gas": 103, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 873, + "op": "PUSH1", + "gas": 102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 875, + "op": "PUSH32", + "gas": 99, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0" + ] + }, + { + "pc": 908, + "op": "JUMPDEST", + "gas": 96, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ] + }, + { + "pc": 909, + "op": "SLOAD", + "gas": 95, + "gasCost": 2100, + "depth": 1, + "error": "out of gas", + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + }, + "extraData": { + "proofList": [ + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151, + "storage": { + "key": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "value": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + } + } + ] + } + } + ] + }, + { + "gas": 24000, + "failed": true, + "returnValue": "", + "from": { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 40, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + "to": { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + "accountAfter": [ + { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 41, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + } + ], + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "byteCode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f1565b610118565b61005b61009336600461070c565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f1565b61020b565b3480156100f557600080fd5b506100ad610235565b61010661029b565b61011661011161033a565b610344565b565b610120610368565b6001600160a01b0316336001600160a01b03161415610157576101548160405180602001604052806000815250600061039b565b50565b6101546100fe565b610167610368565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061039b915050565b505050565b6101c36100fe565b60006101da610368565b6001600160a01b0316336001600160a01b03161415610200576101fb61033a565b905090565b6102086100fe565b90565b610213610368565b6001600160a01b0316336001600160a01b0316141561015757610154816103c6565b600061023f610368565b6001600160a01b0316336001600160a01b03161415610200576101fb610368565b6060610285838360405180606001604052806027815260200161080b6027913961041a565b9392505050565b6001600160a01b03163b151590565b6102a3610368565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104f7565b3660008037600080366000845af43d6000803e808015610363573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103a48361051f565b6000825111806103b15750805b156101c3576103c08383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ef610368565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161055f565b60606001600160a01b0384163b6104825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610331565b600080856001600160a01b03168560405161049d91906107bb565b600060405180830381855af49150503d80600081146104d8576040519150601f19603f3d011682016040523d82523d6000602084013e6104dd565b606091505b50915091506104ed828286610608565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61038c565b61052881610641565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105c45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610331565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610617575081610285565b8251156106275782518084602001fd5b8160405162461bcd60e51b815260040161033191906107d7565b6001600160a01b0381163b6106ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610331565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105e7565b80356001600160a01b03811681146106ec57600080fd5b919050565b60006020828403121561070357600080fd5b610285826106d5565b60008060006040848603121561072157600080fd5b61072a846106d5565b9250602084013567ffffffffffffffff8082111561074757600080fd5b818601915086601f83011261075b57600080fd5b81358181111561076a57600080fd5b87602082850101111561077c57600080fd5b6020830194508093505050509250925092565b60005b838110156107aa578181015183820152602001610792565b838111156103c05750506000910152565b600082516107cd81846020870161078f565b9190910192915050565b60208152600082518060208401526107f681604085016020870161078f565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220366737524a7ac8fa76e3b2cd04bb1e0b8aa75e165c32f59b0076ead59d529de564736f6c634300080a0033", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 320, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 314, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 302, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 7, + "op": "CALLDATASIZE", + "gas": 299, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 8, + "op": "LT", + "gas": 297, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x184" + ] + }, + { + "pc": 9, + "op": "PUSH2", + "gas": 294, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 291, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x4e" + ] + }, + { + "pc": 13, + "op": "PUSH1", + "gas": 281, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 15, + "op": "CALLDATALOAD", + "gas": 278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 16, + "op": "PUSH1", + "gas": 275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592" + ] + }, + { + "pc": 18, + "op": "SHR", + "gas": 272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592", + "0xe0" + ] + }, + { + "pc": 19, + "op": "DUP1", + "gas": 269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 20, + "op": "PUSH4", + "gas": 266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 25, + "op": "EQ", + "gas": 263, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x3659cfe6" + ] + }, + { + "pc": 26, + "op": "PUSH2", + "gas": 260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 29, + "op": "JUMPI", + "gas": 257, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x65" + ] + }, + { + "pc": 30, + "op": "DUP1", + "gas": 247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 31, + "op": "PUSH4", + "gas": 244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 36, + "op": "EQ", + "gas": 241, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x4f1ef286" + ] + }, + { + "pc": 37, + "op": "PUSH2", + "gas": 238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 40, + "op": "JUMPI", + "gas": 235, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x85" + ] + }, + { + "pc": 41, + "op": "DUP1", + "gas": 225, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 42, + "op": "PUSH4", + "gas": 222, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 47, + "op": "EQ", + "gas": 219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x5c60da1b" + ] + }, + { + "pc": 48, + "op": "PUSH2", + "gas": 216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 51, + "op": "JUMPI", + "gas": 213, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x98" + ] + }, + { + "pc": 52, + "op": "DUP1", + "gas": 203, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 53, + "op": "PUSH4", + "gas": 200, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 58, + "op": "EQ", + "gas": 197, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x8f283970" + ] + }, + { + "pc": 59, + "op": "PUSH2", + "gas": 194, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 62, + "op": "JUMPI", + "gas": 191, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xc9" + ] + }, + { + "pc": 63, + "op": "DUP1", + "gas": 181, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 64, + "op": "PUSH4", + "gas": 178, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 69, + "op": "EQ", + "gas": 175, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0xf851a440" + ] + }, + { + "pc": 70, + "op": "PUSH2", + "gas": 172, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 73, + "op": "JUMPI", + "gas": 169, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xe9" + ] + }, + { + "pc": 74, + "op": "PUSH2", + "gas": 159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 77, + "op": "JUMP", + "gas": 156, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5d" + ] + }, + { + "pc": 93, + "op": "JUMPDEST", + "gas": 148, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 94, + "op": "PUSH2", + "gas": 147, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 97, + "op": "PUSH2", + "gas": 144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 100, + "op": "JUMP", + "gas": 141, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0xfe" + ] + }, + { + "pc": 254, + "op": "JUMPDEST", + "gas": 133, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 255, + "op": "PUSH2", + "gas": 132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 258, + "op": "PUSH2", + "gas": 129, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 261, + "op": "JUMP", + "gas": 126, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x29b" + ] + }, + { + "pc": 667, + "op": "JUMPDEST", + "gas": 118, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 668, + "op": "PUSH2", + "gas": 117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 671, + "op": "PUSH2", + "gas": 114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 674, + "op": "JUMP", + "gas": 111, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x368" + ] + }, + { + "pc": 872, + "op": "JUMPDEST", + "gas": 103, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 873, + "op": "PUSH1", + "gas": 102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 875, + "op": "PUSH32", + "gas": 99, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0" + ] + }, + { + "pc": 908, + "op": "JUMPDEST", + "gas": 96, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ] + }, + { + "pc": 909, + "op": "SLOAD", + "gas": 95, + "gasCost": 2100, + "depth": 1, + "error": "out of gas", + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + }, + "extraData": { + "proofList": [ + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151, + "storage": { + "key": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "value": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + } + } + ] + } + } + ] + }, + { + "gas": 24000, + "failed": true, + "returnValue": "", + "from": { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 41, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + "to": { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + "accountAfter": [ + { + "address": "0x478cdd110520a8e733e2acf9e543d2c687ea5239", + "nonce": 42, + "balance": "0x0", + "keccakCodeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "poseidonCodeHash": "0x2098f5fb9e239eab3ceac3f27b81e481dc3124d55ffed523a839ee8446b64864", + "codeSize": 0 + }, + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151 + }, + { + "address": "0x5300000000000000000000000000000000000005", + "nonce": 0, + "balance": "0x2aa86921dcd2c0", + "keccakCodeHash": "0x256e306f068f0847c8aab5819879b2ff45c021ce2e2f428be51be663415b1d60", + "poseidonCodeHash": "0x2c49d7de76e39008575f2f090bb3e90912bad475ea8102c8565c249a75575df5", + "codeSize": 1652 + } + ], + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "byteCode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106f1565b610118565b61005b61009336600461070c565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106f1565b61020b565b3480156100f557600080fd5b506100ad610235565b61010661029b565b61011661011161033a565b610344565b565b610120610368565b6001600160a01b0316336001600160a01b03161415610157576101548160405180602001604052806000815250600061039b565b50565b6101546100fe565b610167610368565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061039b915050565b505050565b6101c36100fe565b60006101da610368565b6001600160a01b0316336001600160a01b03161415610200576101fb61033a565b905090565b6102086100fe565b90565b610213610368565b6001600160a01b0316336001600160a01b0316141561015757610154816103c6565b600061023f610368565b6001600160a01b0316336001600160a01b03161415610200576101fb610368565b6060610285838360405180606001604052806027815260200161080b6027913961041a565b9392505050565b6001600160a01b03163b151590565b6102a3610368565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb6104f7565b3660008037600080366000845af43d6000803e808015610363573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103a48361051f565b6000825111806103b15750805b156101c3576103c08383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ef610368565b604080516001600160a01b03928316815291841660208301520160405180910390a16101548161055f565b60606001600160a01b0384163b6104825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610331565b600080856001600160a01b03168560405161049d91906107bb565b600060405180830381855af49150503d80600081146104d8576040519150601f19603f3d011682016040523d82523d6000602084013e6104dd565b606091505b50915091506104ed828286610608565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61038c565b61052881610641565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105c45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610331565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60608315610617575081610285565b8251156106275782518084602001fd5b8160405162461bcd60e51b815260040161033191906107d7565b6001600160a01b0381163b6106ae5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610331565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105e7565b80356001600160a01b03811681146106ec57600080fd5b919050565b60006020828403121561070357600080fd5b610285826106d5565b60008060006040848603121561072157600080fd5b61072a846106d5565b9250602084013567ffffffffffffffff8082111561074757600080fd5b818601915086601f83011261075b57600080fd5b81358181111561076a57600080fd5b87602082850101111561077c57600080fd5b6020830194508093505050509250925092565b60005b838110156107aa578181015183820152602001610792565b838111156103c05750506000910152565b600082516107cd81846020870161078f565b9190910192915050565b60208152600082518060208401526107f681604085016020870161078f565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220366737524a7ac8fa76e3b2cd04bb1e0b8aa75e165c32f59b0076ead59d529de564736f6c634300080a0033", + "structLogs": [ + { + "pc": 0, + "op": "PUSH1", + "gas": 320, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 2, + "op": "PUSH1", + "gas": 317, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x80" + ] + }, + { + "pc": 4, + "op": "MSTORE", + "gas": 314, + "gasCost": 12, + "depth": 1, + "stack": [ + "0x80", + "0x40" + ] + }, + { + "pc": 5, + "op": "PUSH1", + "gas": 302, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 7, + "op": "CALLDATASIZE", + "gas": 299, + "gasCost": 2, + "depth": 1, + "stack": [ + "0x4" + ] + }, + { + "pc": 8, + "op": "LT", + "gas": 297, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x4", + "0x184" + ] + }, + { + "pc": 9, + "op": "PUSH2", + "gas": 294, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 12, + "op": "JUMPI", + "gas": 291, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x0", + "0x4e" + ] + }, + { + "pc": 13, + "op": "PUSH1", + "gas": 281, + "gasCost": 3, + "depth": 1 + }, + { + "pc": 15, + "op": "CALLDATALOAD", + "gas": 278, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x0" + ] + }, + { + "pc": 16, + "op": "PUSH1", + "gas": 275, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592" + ] + }, + { + "pc": 18, + "op": "SHR", + "gas": 272, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e000000000000000000000000ea08a65b1829af779261e768d609e592", + "0xe0" + ] + }, + { + "pc": 19, + "op": "DUP1", + "gas": 269, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 20, + "op": "PUSH4", + "gas": 266, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 25, + "op": "EQ", + "gas": 263, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x3659cfe6" + ] + }, + { + "pc": 26, + "op": "PUSH2", + "gas": 260, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 29, + "op": "JUMPI", + "gas": 257, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x65" + ] + }, + { + "pc": 30, + "op": "DUP1", + "gas": 247, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 31, + "op": "PUSH4", + "gas": 244, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 36, + "op": "EQ", + "gas": 241, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x4f1ef286" + ] + }, + { + "pc": 37, + "op": "PUSH2", + "gas": 238, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 40, + "op": "JUMPI", + "gas": 235, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x85" + ] + }, + { + "pc": 41, + "op": "DUP1", + "gas": 225, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 42, + "op": "PUSH4", + "gas": 222, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 47, + "op": "EQ", + "gas": 219, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x5c60da1b" + ] + }, + { + "pc": 48, + "op": "PUSH2", + "gas": 216, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 51, + "op": "JUMPI", + "gas": 213, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0x98" + ] + }, + { + "pc": 52, + "op": "DUP1", + "gas": 203, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 53, + "op": "PUSH4", + "gas": 200, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 58, + "op": "EQ", + "gas": 197, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0x8f283970" + ] + }, + { + "pc": 59, + "op": "PUSH2", + "gas": 194, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 62, + "op": "JUMPI", + "gas": 191, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xc9" + ] + }, + { + "pc": 63, + "op": "DUP1", + "gas": 181, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 64, + "op": "PUSH4", + "gas": 178, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e" + ] + }, + { + "pc": 69, + "op": "EQ", + "gas": 175, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x8ef1332e", + "0xf851a440" + ] + }, + { + "pc": 70, + "op": "PUSH2", + "gas": 172, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0" + ] + }, + { + "pc": 73, + "op": "JUMPI", + "gas": 169, + "gasCost": 10, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x0", + "0xe9" + ] + }, + { + "pc": 74, + "op": "PUSH2", + "gas": 159, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 77, + "op": "JUMP", + "gas": 156, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5d" + ] + }, + { + "pc": 93, + "op": "JUMPDEST", + "gas": 148, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 94, + "op": "PUSH2", + "gas": 147, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e" + ] + }, + { + "pc": 97, + "op": "PUSH2", + "gas": 144, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 100, + "op": "JUMP", + "gas": 141, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0xfe" + ] + }, + { + "pc": 254, + "op": "JUMPDEST", + "gas": 133, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 255, + "op": "PUSH2", + "gas": 132, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b" + ] + }, + { + "pc": 258, + "op": "PUSH2", + "gas": 129, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 261, + "op": "JUMP", + "gas": 126, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x29b" + ] + }, + { + "pc": 667, + "op": "JUMPDEST", + "gas": 118, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 668, + "op": "PUSH2", + "gas": 117, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106" + ] + }, + { + "pc": 671, + "op": "PUSH2", + "gas": 114, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 674, + "op": "JUMP", + "gas": 111, + "gasCost": 8, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x368" + ] + }, + { + "pc": 872, + "op": "JUMPDEST", + "gas": 103, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 873, + "op": "PUSH1", + "gas": 102, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3" + ] + }, + { + "pc": 875, + "op": "PUSH32", + "gas": 99, + "gasCost": 3, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0" + ] + }, + { + "pc": 908, + "op": "JUMPDEST", + "gas": 96, + "gasCost": 1, + "depth": 1, + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ] + }, + { + "pc": 909, + "op": "SLOAD", + "gas": 95, + "gasCost": 2100, + "depth": 1, + "error": "out of gas", + "stack": [ + "0x8ef1332e", + "0x5b", + "0x106", + "0x2a3", + "0x0", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + ], + "storage": { + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + }, + "extraData": { + "proofList": [ + { + "address": "0x1a258d17bf244c4df02d40343a7626a9d321e105", + "nonce": 1, + "balance": "0x30644e72e131a029b85045b68181585d2833e84879b9705b0e1847ce11600000", + "keccakCodeHash": "0x31f2125c021fb94759cb1993a2f07eae01792311e13f209441ff8969cf1eb835", + "poseidonCodeHash": "0x1cafbbe8f01ed4c292d9a27be523919a274441a076b20c7d713d192dbe6485c2", + "codeSize": 2151, + "storage": { + "key": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "value": "0x0000000000000000000000008eebfef33eb00149852cadb631838ad9bfcce848" + } + } + ] + } + } + ] + } + ], + "withdraw_trie_root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + \ No newline at end of file diff --git a/rollup/rollup_sync_service/testdata/commit_batch_transaction.json b/rollup/rollup_sync_service/testdata/commit_batch_transaction.json new file mode 100644 index 000000000000..60fbb16d091c --- /dev/null +++ b/rollup/rollup_sync_service/testdata/commit_batch_transaction.json @@ -0,0 +1,3 @@ +{ + "calldata": "0x1325aca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000018a800000000000000000000000000000000000000000000000000000000000000059000000000000004694000000000000000000000000000725186d74e28d3de9082c4dc34a2c243d4bcc772404b3a6d6e4fa4c6036d01acacc7adf2fe7745a5317950129bdc5da5ddb535ee34d03da817d41d5f6d65a2e918fb1000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000008460000000000000000000000000000000000000000000000000000000000000c480000000000000000000000000000000000000000000000000000000000000de40000000000000000000000000000000000000000000000000000000000000f6200000000000000000000000000000000000000000000000000000000000013e6000000000000000000000000000000000000000000000000000000000000046d80800000000000520310000000064ef32be000000000000000000000000000000000000000000000000000000000000000000000000007a12000003000000000000000520320000000064ef32c1000000000000000000000000000000000000000000000000000000000000000000000000007a12000004000000000000000520330000000064ef32c4000000000000000000000000000000000000000000000000000000000000000000000000007a12000001000000000000000520340000000064ef32c7000000000000000000000000000000000000000000000000000000000000000000000000007a12000003000000000000000520350000000064ef32ca000000000000000000000000000000000000000000000000000000000000000000000000007a12000001000000000000000520360000000064ef32cd000000000000000000000000000000000000000000000000000000000000000000000000007a12000001000000000000000520370000000064ef32d0000000000000000000000000000000000000000000000000000000000000000000000000007a12000006000000000000000520380000000064ef32d3000000000000000000000000000000000000000000000000000000000000000000000000007a120000060000000002d8f902d508850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8706651728988000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b4000000000000000000000000000000000000000000000000000665172898800000000000000000000000000000000000000000000000000007cb1b48688424970000000000000000000000000000000000000000000000000006133c6690e000000000000000000000000000000000000000000000000000076759eb3017228000000000000000000000000014aa56aa6ad893a8296c2443772b054c9157aa830000000000000000000000000000000000000000000000000000000064ef363800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a012fcc3e3caaea891fa4b2b5d4130c2bb3477e5f8d2d51679a80b0269cd2ec0d9a0345462a5ba083e1640daf5a5fe665d39630edf15fa871f74b321270242aeb76c000003f1f903ee2a850ba43b7400830521a694bbad0e891922a8a4a7e9c39d4cc0559117016fec80b90384ac9650d80000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000a40c49ccbe0000000000000000000000000000000000000000000000000000000000008717000000000000000000000000000000000000000000000008642d8cc50b5377f400000000000000000000000000000000000000000000000004c26f9c0df588b3000000000000000000000000000000000000000000000e128204e60b2085ced80000000000000000000000000000000000000000000000000000000064ef33db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084fc6f78650000000000000000000000000000000000000000000000000000000000008717000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c00000000000000000000000000000000000000000000000004c7951a55fb5d9d000000000000000000000000ece5858ff6ac4bae6af42b483e84f9655a23b652000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064df2ab5bb000000000000000000000000690000ef01dece82d837b5faa2719ae47b156697000000000000000000000000000000000000000000000e231f5cd8ee1615ba33000000000000000000000000ece5858ff6ac4bae6af42b483e84f9655a23b6520000000000000000000000000000000000000000000000000000000083104ec1a04256aa1ade44f69215193312b91d66f5f855d00ed3bc80c4b342bde7613121fba05d1aa1cf8679c10925ef6998439ff09a738089eec679de113a3ae0ebb2ece67d00000075f87301850ba43b740082ca909453000000000000000000000000000000000000048801aa535d3d0c000084d0e30db083104ec2a01123959614fdc45dca47b62493ca3a48e4b59246f45f5515cf747483099e5441a01527faefaabbb05b5c6c80dc438229194706403a23a8de8a12b8f41caef2b3a8000002d8f902d508850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8703e871b540c000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000003e871b540c00000000000000000000000000000000000000000000000000004c33b81baaa30a70000000000000000000000000000000000000000000000000003b66c05ca500000000000000000000000000000000000000000000000000004864554d7bb47c0000000000000000000000000bcfbf5511d5cb462c20ccd7c186cf9d5f00660ad0000000000000000000000000000000000000000000000000000000064ef363d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a0a3646d98cf66c85efb80c78022ecf568c79edd25af014313f61ddbc4933cf673a0288635040cedf157e5d42516b6435c0bc525892eafc110983a909382ef56aa9900000073f87106850ba43b740082ca9094530000000000000000000000000000000000000486c7cfb233750b84d0e30db083104ec1a0e770b755fc5afc41d3179bd796bf7c2b82eb0e705b2fa56c9e1a1df2d9bb9d9ca0670e965c91ed311809987e58deecd77dba3f7cd4cd7a4d5e8941fe333d58093100000072f870821bc9850ba43b74008261a894d90bf40ef846c3513ae474a9fa42bab5d137c44f87470de4df8200008083104ec1a0a0530f15a1eef30e49a193586f83e22c6bc31fad7a1d471b887c09b9b8fc6cd5a01c727ddc32579d8008a1ecee361b87016371e8a90b8c9f26de94c98afcabb227000000aff8ad18850ba43b7400830110dd94c72e15551717923a7a7a162f4771de96c6e6f54680b844095ea7b3000000000000000000000000ce87dbc5176cf0e37cf54741faf30e3e489e1799fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe83104ec2a020e5953a44ec49b768ce4e22ca7a0339992b2c8eaf4a73771d35eb9d483521c2a030d47d3a3cc2859c8938019fbe60c49db837e998ab132287126a96e74081ce4e000000b7f8b50f850ba43b740083044d58949ad3c5617ecaa556d6e166787a97081907171230880429d069189e0000b844c7cdea370000000000000000000000000000000000000000000000000429d069189e0000000000000000000000000000000000000000000000000000000000000000000083104ec2a08c673d0f28dc28fb8c5c4b9f97b4ea7195f68ea5bcba4fa69afd90cff8d36899a032def9531076b4a7697e9ab3ddc744df4d215f85a6154181cfc45791a0cacab400000070f86e01850ba43b740082520894ccdf5f933a2caf4fff8090e2aa1c9d02b02ffd20872386f26fc100008083104ec1a0ae4fce22ffcaa2863e961279ee6f611c7a8b48c8adfcc5c74eb77fe7a145df1ea013205baa60b2fd1c0e58e61f6662f0b1f4abefb551f0c81d63367da51d4e4c2c00000219f9021615850ba43b74008302a45a9417afd0263d6909ba1f9a8eac697f76532365fb95880429d069189e0000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef33db00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000006de40ee67a0eb6dc0b1378733359f2064f15ce610000000000000000000000000000000000000000000000000429d069189e0000000000000000000000000000000000000000000000000005114dc5700c81b11a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a031b26bb7c4a128abab486f6ae88dc8d50e4d6e998950885a36cb6202cb75aff2a050b47b53f217ad05f9fa1ac37f870106b5c6aee5187750369784ee9e49a2cf6000000219f9021605850ba43b74008302f6f19417afd0263d6909ba1f9a8eac697f76532365fb9588016345785d8a0000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef33e700000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000008c25caf7e3873d1d5b4973ff7e13af004d7c98cc000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000001b080340166d4252c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a0ded58c0fd58331b26c5da9348242873b68806f91762e7777bfa305b1e2eaa801a076ae942a3e8c92b111225b5caf5dd03867b70ff89cc6ca44568d857cbf57fe4b000000aef8ac08850cce41660082c0a594d9692f1748afee00face2da35242417dd05a861580b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec0000000000000000000000000000000000000000000000008ac7230489e8000083104ec1a080d341f51667bdb43292b6cf129c82de0c4a9af8087d8efa1a38931ea0bc4c81a02b101f84ad1c3c7cb15b8fc29b17b5e1408e1d438e71f4d551c7b91b92536a13000000aef8ac08850cce41660082c0a594d9692f1748afee00face2da35242417dd05a861580b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec0000000000000000000000000000000000000000000000008ac7230489e8000083104ec2a0b7a31191d83054810613ce172e8f525c9219d0e26da593f98b4fc1cc31126161a019d3f6f15974096de7d45f134df6894e356f1f6e707835d4aae5439fa18af850000000d2f8d080850ba43b74008302ac328080b87b6066806015600039303360006000a2806000f350fe6000803560e01c60008114602e5760018114603a5760028114604657600381146052576101008114605e576063565b634cfc9f2d8283a16063565b635961ec688283a16063565b633f85c0e98283a16063565b636f4c5fd58283a16063565b308283a15b505083104ec2a087b9ab5bc2ae347870503ac3e97b123978db81aa99890101576a09fb1307e4c8a077f695e4c96ac0b6906df1b9bb86ce6dc37895c894acf755f0cc1b7fb6afa777000000d2f8d080850ba43b740083024f8e8080b87b6066806015600039303360006000a2806000f350fe6000803560e01c60008114602e5760018114603a5760028114604657600381146052576101008114605e576063565b632fb3c6c08283a16063565b63d1bb63188283a16063565b6338d8f8878283a16063565b6357c94dd38283a16063565b308283a15b505083104ec1a0a4c7cadb3a0cc42e0e95ccb8aa5dcac6e8801c4e88072ca626c80ffc2f531bdca0208a871501062b0eb1b2319c152d079a63050907fdf4ec4cabb4f541dd5b6aa7000001b1f901ae05850ba43b74008304faab943687ee3fb77c299e287d7a7fd4467623a4e49c4c80b90144ded9382a000000000000000000000000690000ef01dece82d837b5faa2719ae47b15669700000000000000000000000000000000000000000000000000ff68ff7bf0f9a00000000000000000000000000000000000000000000000015a7df7243317341e0000000000000000000000000000000000000000000000000000c2c65aaf92f60000000000000000000000008af20afecf5f4ee4fdab4c2349d764ed06f917280000000000000000000000000000000000000000000000000000000064ef377e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cb8365bb8fd8d9b81f468552ffd58f2a792be0997bac009c5b298abce7c6ce3f66bd0e72665dee544ed9ed24390a4d92c093e679c54f318ff633de0ffee3400d983104ec2a09c0f62d65bb3e97b1ccdba64a8492f820b65575f7191ad7073dc193b47fa3ba4a05d7c3ae98c872a87b082e45fc270df5c570d75e8a1e285aefc4f6fc34db39c12000000b7f8b507850ba43b7400830433c3949ad3c5617ecaa556d6e166787a970819071712308802c68af0bb140000b844c7cdea3700000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000000000083104ec2a0b704d013792e65c071df7661a3c84713ae2ddb540f2d3772017a0efd22ae832ca0481081b54bff42285edbc6b1d0e504c3fb0c027621085f8df6814c0713315c6f000000aff8ad04850ba43b7400830119d794672f9e2237b1d6236654d181afc373e2bfb78fdb80b844a1448194000000000000000000000000f77b38ecf43ccc2bd1e2b0d626f2167162b008fc000000000000000000000000000000000000000000000000000000000000000183104ec2a043cb2df1be414967d7c14f60610fc22b95affe01d9254484a44c538df30d2e18a057da38986028b1679028efd7d76f032672dc69eb4878000eabf4eb3f2cf58bc60000008ef88c10850ba43b74008301687994ff355fc2b76c66323a8ae5e5b2df4c9c4fd1c89180a4a0712d68000000000000000000000000000000000000000000000000000000000000000383104ec2a05598114c4003815425512d35f2af917fe119c8919daf9e5192d9f174dc8d4c4aa008ebcd084b8a22dfaf2fac5ffc1d49569f05df45d8ed0ba5f34cb39a0acee257000000b6f8b480850ba43b740083044d58949ad3c5617ecaa556d6e166787a9708190717123087470de4df820000b844c7cdea3700000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000000000000000000083104ec2a02b037835b9488ab2a728c9267eab23b575634a74be26561a1a515541e4b92753a038cff403be500a71e9488189e15380534775816fb7a98f2a8504a262f52c95840000008df88b02850ba43b740082a9e6944ed8bb0cd040e7bb9fed7e0939fdc592811b2a7d80a43fb5c1cb00000000000000000000000000000000000000000000000000000000000000c683104ec2a04cc23af1ba840f61b2370c1211ae560df39c057cd698059dba7880b467c5bdb1a01c23bacb7a238d7387d1a7b04a32ae1bc6ae4ef3cc95072490a7c8726a99255e00002652f9264f02850ba43b7400831a3ea08080b925fa60806040523480156200001157600080fd5b506040516200251a3803806200251a8339818101604052810190620000379190620004ad565b828281600390816200004a919062000788565b5080600490816200005c919062000788565b5050506200007f620000736200009a60201b60201c565b620000a260201b60201c565b6200009133826200016860201b60201c565b5050506200098a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001d190620008d0565b60405180910390fd5b620001ee60008383620002d560201b60201c565b806002600082825462000202919062000921565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002b591906200096d565b60405180910390a3620002d160008383620002da60201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034882620002fd565b810181811067ffffffffffffffff821117156200036a57620003696200030e565b5b80604052505050565b60006200037f620002df565b90506200038d82826200033d565b919050565b600067ffffffffffffffff821115620003b057620003af6200030e565b5b620003bb82620002fd565b9050602081019050919050565b60005b83811015620003e8578082015181840152602081019050620003cb565b60008484015250505050565b60006200040b620004058462000392565b62000373565b9050828152602081018484840111156200042a5762000429620002f8565b5b62000437848285620003c8565b509392505050565b600082601f830112620004575762000456620002f3565b5b815162000469848260208601620003f4565b91505092915050565b6000819050919050565b620004878162000472565b81146200049357600080fd5b50565b600081519050620004a7816200047c565b92915050565b600080600060608486031215620004c957620004c8620002e9565b5b600084015167ffffffffffffffff811115620004ea57620004e9620002ee565b5b620004f8868287016200043f565b935050602084015167ffffffffffffffff8111156200051c576200051b620002ee565b5b6200052a868287016200043f565b92505060406200053d8682870162000496565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200059a57607f821691505b602082108103620005b057620005af62000552565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200061a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005db565b620006268683620005db565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000669620006636200065d8462000472565b6200063e565b62000472565b9050919050565b6000819050919050565b620006858362000648565b6200069d620006948262000670565b848454620005e8565b825550505050565b600090565b620006b4620006a5565b620006c18184846200067a565b505050565b5b81811015620006e957620006dd600082620006aa565b600181019050620006c7565b5050565b601f82111562000738576200070281620005b6565b6200070d84620005cb565b810160208510156200071d578190505b620007356200072c85620005cb565b830182620006c6565b50505b505050565b600082821c905092915050565b60006200075d600019846008026200073d565b1980831691505092915050565b60006200077883836200074a565b9150826002028217905092915050565b620007938262000547565b67ffffffffffffffff811115620007af57620007ae6200030e565b5b620007bb825462000581565b620007c8828285620006ed565b600060209050601f831160018114620008005760008415620007eb578287015190505b620007f785826200076a565b86555062000867565b601f1984166200081086620005b6565b60005b828110156200083a5784890151825560018201915060208501945060208101905062000813565b868310156200085a578489015162000856601f8916826200074a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620008b8601f836200086f565b9150620008c58262000880565b602082019050919050565b60006020820190508181036000830152620008eb81620008a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200092e8262000472565b91506200093b8362000472565b9250828201905080821115620009565762000955620008f2565b5b92915050565b620009678162000472565b82525050565b60006020820190506200098460008301846200095c565b92915050565b611b80806200099a6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102a6578063a457c2d7146102c4578063a9059cbb146102f4578063dd62ed3e14610324578063f2fde38b146103545761010b565b806370a0823114610232578063715018a61461026257806379cc67901461026c5780638da5cb5b146102885761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806340c10f19146101fa57806342966c68146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610370565b6040516101259190611178565b60405180910390f35b61014860048036038101906101439190611233565b610402565b604051610155919061128e565b60405180910390f35b610166610425565b60405161017391906112b8565b60405180910390f35b610196600480360381019061019191906112d3565b61042f565b6040516101a3919061128e565b60405180910390f35b6101b461045e565b6040516101c19190611342565b60405180910390f35b6101e460048036038101906101df9190611233565b610467565b6040516101f1919061128e565b60405180910390f35b610214600480360381019061020f9190611233565b61049e565b005b610230600480360381019061022b919061135d565b6104b4565b005b61024c6004803603810190610247919061138a565b6104c8565b60405161025991906112b8565b60405180910390f35b61026a610510565b005b61028660048036038101906102819190611233565b610524565b005b610290610544565b60405161029d91906113c6565b60405180910390f35b6102ae61056e565b6040516102bb9190611178565b60405180910390f35b6102de60048036038101906102d99190611233565b610600565b6040516102eb919061128e565b60405180910390f35b61030e60048036038101906103099190611233565b610677565b60405161031b919061128e565b60405180910390f35b61033e600480360381019061033991906113e1565b61069a565b60405161034b91906112b8565b60405180910390f35b61036e6004803603810190610369919061138a565b610721565b005b60606003805461037f90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab90611450565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b5050505050905090565b60008061040d6107a4565b905061041a8185856107ac565b600191505092915050565b6000600254905090565b60008061043a6107a4565b9050610447858285610975565b610452858585610a01565b60019150509392505050565b60006012905090565b6000806104726107a4565b9050610493818585610484858961069a565b61048e91906114b0565b6107ac565b600191505092915050565b6104a6610c77565b6104b08282610cf5565b5050565b6104c56104bf6107a4565b82610e4b565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610518610c77565b6105226000611018565b565b610536826105306107a4565b83610975565b6105408282610e4b565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461057d90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990611450565b80156105f65780601f106105cb576101008083540402835291602001916105f6565b820191906000526020600020905b8154815290600101906020018083116105d957829003601f168201915b5050505050905090565b60008061060b6107a4565b90506000610619828661069a565b90508381101561065e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065590611556565b60405180910390fd5b61066b82868684036107ac565b60019250505092915050565b6000806106826107a4565b905061068f818585610a01565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610729610c77565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f906115e8565b60405180910390fd5b6107a181611018565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108129061167a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108819061170c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096891906112b8565b60405180910390a3505050565b6000610981848461069a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109fb57818110156109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e490611778565b60405180910390fd5b6109fa84848484036107ac565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061180a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad69061189c565b60405180910390fd5b610aea8383836110de565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b679061192e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5e91906112b8565b60405180910390a3610c718484846110e3565b50505050565b610c7f6107a4565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610544565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061199a565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b90611a06565b60405180910390fd5b610d70600083836110de565b8060026000828254610d8291906114b0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e3391906112b8565b60405180910390a3610e47600083836110e3565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190611a98565b60405180910390fd5b610ec6826000836110de565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390611b2a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fff91906112b8565b60405180910390a3611013836000846110e3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611122578082015181840152602081019050611107565b60008484015250505050565b6000601f19601f8301169050919050565b600061114a826110e8565b61115481856110f3565b9350611164818560208601611104565b61116d8161112e565b840191505092915050565b60006020820190508181036000830152611192818461113f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111ca8261119f565b9050919050565b6111da816111bf565b81146111e557600080fd5b50565b6000813590506111f7816111d1565b92915050565b6000819050919050565b611210816111fd565b811461121b57600080fd5b50565b60008135905061122d81611207565b92915050565b6000806040838503121561124a5761124961119a565b5b6000611258858286016111e8565b92505060206112698582860161121e565b9150509250929050565b60008115159050919050565b61128881611273565b82525050565b60006020820190506112a3600083018461127f565b92915050565b6112b2816111fd565b82525050565b60006020820190506112cd60008301846112a9565b92915050565b6000806000606084860312156112ec576112eb61119a565b5b60006112fa868287016111e8565b935050602061130b868287016111e8565b925050604061131c8682870161121e565b9150509250925092565b600060ff82169050919050565b61133c81611326565b82525050565b60006020820190506113576000830184611333565b92915050565b6000602082840312156113735761137261119a565b5b60006113818482850161121e565b91505092915050565b6000602082840312156113a05761139f61119a565b5b60006113ae848285016111e8565b91505092915050565b6113c0816111bf565b82525050565b60006020820190506113db60008301846113b7565b92915050565b600080604083850312156113f8576113f761119a565b5b6000611406858286016111e8565b9250506020611417858286016111e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061146857607f821691505b60208210810361147b5761147a611421565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114bb826111fd565b91506114c6836111fd565b92508282019050808211156114de576114dd611481565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006115406025836110f3565b915061154b826114e4565b604082019050919050565b6000602082019050818103600083015261156f81611533565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006115d26026836110f3565b91506115dd82611576565b604082019050919050565b60006020820190508181036000830152611601816115c5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006116646024836110f3565b915061166f82611608565b604082019050919050565b6000602082019050818103600083015261169381611657565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006116f66022836110f3565b91506117018261169a565b604082019050919050565b60006020820190508181036000830152611725816116e9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611762601d836110f3565b915061176d8261172c565b602082019050919050565b6000602082019050818103600083015261179181611755565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117f46025836110f3565b91506117ff82611798565b604082019050919050565b60006020820190508181036000830152611823816117e7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006118866023836110f3565b91506118918261182a565b604082019050919050565b600060208201905081810360008301526118b581611879565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006119186026836110f3565b9150611923826118bc565b604082019050919050565b600060208201905081810360008301526119478161190b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119846020836110f3565b915061198f8261194e565b602082019050919050565b600060208201905081810360008301526119b381611977565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006119f0601f836110f3565b91506119fb826119ba565b602082019050919050565b60006020820190508181036000830152611a1f816119e3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a826021836110f3565b9150611a8d82611a26565b604082019050919050565b60006020820190508181036000830152611ab181611a75565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b146022836110f3565b9150611b1f82611ab8565b604082019050919050565b60006020820190508181036000830152611b4381611b07565b905091905056fea26469706673582212204df6f0de305c90d5e7f095ff995f5884e7b51d307b600671a909171759701b0f64736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000115c000000000000000000000000000000000000000000000000000000000000000465656577000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002323200000000000000000000000000000000000000000000000000000000000083104ec29fe7a308a2e7365e476d40bcba87d70bdcd3f390b76a21530fbda4620dc2617ca002adcc34d12199c22c778c02445cac6b9416aab00bfd365149e786c0cbf80e3f0000008df88b07850ba43b740082a71b94530000000000000000000000000000000000000480a42e1a7d4d0000000000000000000000000000000000000000000000000000c7cfb233750b83104ec2a0d0bafb4cd5442c56b072a688c48315bc09fdfb6684704449020338ea5e46319ea06bbe8cf22c282cec7668d740da3092020964e159866696514cfe91a95df1c95400000218f902152b850ba43b74008302b72c9417afd0263d6909ba1f9a8eac697f76532365fb9588025bf6196bd10000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef33ea00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000ece5858ff6ac4bae6af42b483e84f9655a23b652000000000000000000000000000000000000000000000000025bf6196bd10000000000000000000000000000000000000000000000000002df3642efb456b17700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a0bae91ce5dc19445136098834317d1990b512e04bc17b4d673764bb18a9890c609fbfcf09c31bc6224ab8248546afbd0f46235bbb2bc0bb7edbeb899b3356ff9f000002b1f902ae4c850ba43b74008303efe89417afd0263d6909ba1f9a8eac697f76532365fb9580b902445ae401dc0000000000000000000000000000000000000000000000000000000064ef33d5000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000ffd2ece82f7959ae184d10fe17865d27b4f0fb94000000000000000000000000530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000008f0d1800000000000000000000000000000000000000000000000000142731bbbe7afff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c0000000000000000000000000000000000000000000000000142731bbbe7afff000000000000000000000000b7a973b36d1c39e5ce935f611613fc0bb58f86580000000000000000000000000000000000000000000000000000000083104ec2a014b20ed2c85a5c1a1b48b47534623db622cf4c6b9fa237603005f3c5e1f2adaca0382b0b2d098a0f7d4f19635d7a2dec55e887eb9611a3efac67fa5f304ca4f27e0000000000000000000000000000000000000000000000000000000000000000000000000000249d0500000000000520390000000064ef32d6000000000000000000000000000000000000000000000000000000000000000000000000007a120000040000000000000005203a0000000064ef32d9000000000000000000000000000000000000000000000000000000000000000000000000007a120000070000000000000005203b0000000064ef32dc000000000000000000000000000000000000000000000000000000000000000000000000007a120000030000000000000005203c0000000064ef32df000000000000000000000000000000000000000000000000000000000000000000000000007a120000040000000000000005203d0000000064ef32e2000000000000000000000000000000000000000000000000000000000000000000000000007a120000020000000002d8f902d509850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8704f94ae6af8000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000004f94ae6af8000000000000000000000000000000000000000000000000000060eccdd5c1d16390000000000000000000000000000000000000000000000000004b9a0c18d200000000000000000000000000000000000000000000000000005c1429f1782084000000000000000000000000093b988e7d596005bc71b4e09ffbe8175f11c894b0000000000000000000000000000000000000000000000000000000064ef365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a0a086095355da2b87258e33e428ebdc39bb3b5d1f60f96756aa5f84872645ecd5a0304759b9546ac3343a12db1a01bcbf44a85e1ac5ceb08511de72fbe5d292a4e4000000b6f8b403850ba43b7400830433c3949ad3c5617ecaa556d6e166787a9708190717123087038d7ea4c68000b844c7cdea3700000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000000083104ec2a012074706a507210139a157b5e54f4a3df533e527059b112d676a5ba27bda8611a04565c4c90183d9f8071ce19c9b30c5e017fed20d6e2203bc457511eb7a008691000002d8f902d503850ba43b740083019f7694bbad0e891922a8a4a7e9c39d4cc0559117016fec8711b60f91caf056b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000011b60f91caf05600000000000000000000000000000000000000000000000015a6404b8c9b705a0000000000000000000000000000000000000000000000000011aac49b704653000000000000000000000000000000000000000000000000159860cf3886c23c000000000000000000000000342f6796d7b9d757e9355863c3dff3c5062158700000000000000000000000000000000000000000000000000000000064ef33de00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a045d119de9f101892b7c34b06b014cb764f032db0c51b0575e5b66ad3ff81143ca02cf20dcc2f56cff75867f655f92e0c044a416e9b40141a4bc757eb00e95cd0c100000218f9021580850ba43b740083026a729417afd0263d6909ba1f9a8eac697f76532365fb958717aeb11212a000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef33de00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000cca7589b2742e57ff55d04e4f6a96aaa5879a13d0000000000000000000000000000000000000000000000000017aeb11212a0000000000000000000000000000000000000000000000000001cd522d257fab3c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a0b75d90faed4ac37b661a26353ad653590ffca47ca3e09ded38f23df0fcec9f3da0563ce4e83c2b3041bc7fd3d87ac38b99a52e2e7ee7bc25f2520564a3c13e3a04000002d8f902d509850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8704f94ae6af8000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000004f94ae6af8000000000000000000000000000000000000000000000000000060e6598a3d0dd700000000000000000000000000000000000000000000000000004b9a0c18d200000000000000000000000000000000000000000000000000005c0e08435399f400000000000000000000000006c8da65e9d173fc186d7ff10020db95e4d58d2880000000000000000000000000000000000000000000000000000000064ef365500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a0f78b8fdfae61e082f30cbdf6e3dec9f6af8fcad01a666fdf2ce27546b4146562a0133fefdfd1c42cac10ec4541720d5a59608e45413044668e9f12ef7f51d079f1000002b1f902ae07850bdfd63e008304a2b69417afd0263d6909ba1f9a8eac697f76532365fb9580b902445ae401dc0000000000000000000000000000000000000000000000000000000064ef59e2000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000d9692f1748afee00face2da35242417dd05a8615000000000000000000000000530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000004bbbf918d40111000000000000000000000000000000000000000000000000000047f346a7119d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c000000000000000000000000000000000000000000000000000047f346a7119d000000000000000000000000260ca22885185b92bbcdac78dbb526b5ee6f6e7f0000000000000000000000000000000000000000000000000000000083104ec1a002e2f6a82286dcf705b20d1bb72d29a1fe6484a97f5ec69737a0c26a3b907448a01634a4a321d44fe0a7f517881a441fcb9f54bcc43bddf0d9200cc359a5a4100b00000072f8708204b3850ba43b7400825208947cb2b6cb6aa9bbdc4f8862f7b5b77050c580de9187038d7ea4c680008083104ec2a0b828bab67f24182d249ec2f61bbfbee7e86bbde28337f4b07b982d9b2de9b3c6a04ce458d587c4d04c307ad9d1e2b4731552e35986704601077e0db6a20ac4158b000000b6f8b403850ba43b7400830433c3949ad3c5617ecaa556d6e166787a9708190717123087b1a2bc2ec50000b844c7cdea3700000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000000000000000000000000000000000000000000083104ec1a0d7994ec8b85029473ce31d18495b13618be7b5544a7a79e17812c771a7e55fe0a06c425c09559902ca0997319461d2272fde2364c7209b34cc81a0287150c33d6500000072f870821bca850ba43b74008261a89456e45dd03c9edf80631a725554c9a8ac9970579087470de4df8200008083104ec2a068a1c6c91f27a303feb09e625f8deb92e53775d0c7cf71785b710a9c045615fba012d21972578604f795c90603516a25cec0a6e867528f068846c4666ab0bdecc600000172f9016f8182850ba43b7400830289fb943687ee3fb77c299e287d7a7fd4467623a4e49c4c80b9010418cbafe5000000000000000000000000000000000000000000000cb49b44ba602d80000000000000000000000000000000000000000000000000000005cfb9fbd4c04d1c00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000058d089cb9d224433e94060a33b3fecccc30e4ea60000000000000000000000000000000000000000000000000000000064ef377c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000690000ef01dece82d837b5faa2719ae47b156697000000000000000000000000530000000000000000000000000000000000000483104ec2a06435ba082446e56238936cdae25fb233a594dfc0178eee820a0315dfdb1d7f2fa01019d578b1581255f4082797fad42f4d858bce636339070199d1b5a9b7c95f2000000130f9012d19850ba43b74008302d58b94ce87dbc5176cf0e37cf54741faf30e3e489e179980b8c48f6bdeaa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000ebec21ee1da40000000000000000000000000000000000000000000000000000eb6d20760f03ea7b0000000000000000000000009ef3c073fbb1c77a065b76e92ae9d0d2a28cb6db0000000000000000000000000000000000000000000000000000000064ef33fa83104ec1a05dfadafbfbd7fc8ff2f6f926326fe71214cbc1be14df4cb6ba1e494d38cc129aa008a57480844c943e7032dbf9b98d2606711f7efb08bd051b542c9c7a66f9dffb000000aef8ac06850ba43b7400827ced94d9692f1748afee00face2da35242417dd05a861580b844095ea7b300000000000000000000000017afd0263d6909ba1f9a8eac697f76532365fb95000000000000000000000000000000000000000000000001b0bc0acfc83201a983104ec1a0e4d285b3912a407bb6e2a944a2e04823f95f7b3f45b7a34eb138748e31b68ef0a00a4c38390af30600ed51ff185deed774640bf5c9af926e5e452b83f5430b9b68000003f1f903ee23850ba43b740083051e5494bbad0e891922a8a4a7e9c39d4cc0559117016fec80b90384ac9650d80000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000a40c49ccbe000000000000000000000000000000000000000000000000000000000000a2f000000000000000000000000000000000000000000000000017f9828a2e5c45df000000000000000000000000000000000000000000000000015169a1f8ffcea90000000000000000000000000000000000000000000000019ecf9e08edefec260000000000000000000000000000000000000000000000000000000064ef33cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084fc6f7865000000000000000000000000000000000000000000000000000000000000a2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c0000000000000000000000000000000000000000000000000156814b3ae51358000000000000000000000000547580a7a72fe75268a1315e601bddac5a9150af000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064df2ab5bb000000000000000000000000d9692f1748afee00face2da35242417dd05a8615000000000000000000000000000000000000000000000001a64c0a7a41f0d4b8000000000000000000000000547580a7a72fe75268a1315e601bddac5a9150af0000000000000000000000000000000000000000000000000000000083104ec1a00c9f0cccf1a84b6122f02d1151341873dbc8e85c0ee9d9540421086b557a1bafa03d20a9059ef463f16c89265575e613265158e3b3f2a604cdcb9957eed29d0ff2000000b1f8af820a46850ba43b740083013dc1946f1da9076f36000d5f9decdebd52402b1410b2c580b844468021b7000000000000000000000000e3f26a65d57548bb06e2de1ff24e881b41b583eb000000000000000000000000000000000000000000000000000000000000000083104ec1a09129a7f06182c9cb262365d9a96ffe6999c943867e7815f33aa20d133556cbcaa021116e937b78547580911c8110d9fcd5dea43731c6ec55035b2fa6792e867b38000000aef8ac2c850ba43b74008266d494b473160c57c7b2d228ba5a5f3c76ebc2e9668c6580b844095ea7b3000000000000000000000000837a9f1803d84a341a343f05be9705dec4b81f930000000000000000000000000000000000000000000000000b1d5f3c090b9eaf83104ec1a0624ba2c183727e9ca7fc2c3a8be3d9a462236667cd3c31e1d71b719b74606e54a034392e6224d768b41819a00fc67cdbe38b01eafd5577c7be6aa7a9c48d59061a000000aef8ac04850ba43b740082b4c094530000000000000000000000000000000000000480b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec000000000000000000000000000000000000000000000000008e1bc9bf04000083104ec2a0a27b079622f4398d66686f9b8a909c301b5880a6bd18ceb121ebc1d4b2cc7125a036c74beef024feb50f27ecfa7d0ca0157f59d3624300d76309d1e6d0de433c4a000003f1f903ee06850ba43b74008305292194bbad0e891922a8a4a7e9c39d4cc0559117016fec80b90384ac9650d80000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000a40c49ccbe0000000000000000000000000000000000000000000000000000000000006ffb00000000000000000000000000000000000000000000000002be0f04c7b462bb00000000000000000000000000000000000000000000000000104fcefa78b54e0000000000000000000000000000000000000000000000002cb2d85a09455baf0000000000000000000000000000000000000000000000000000000064ef33f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084fc6f78650000000000000000000000000000000000000000000000000000000000006ffb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c0000000000000000000000000000000000000000000000000011554e0cda318f000000000000000000000000548453631f70facef4e09697e0d2e5f4e149db73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064df2ab5bb000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000002e1853a465ed9f51000000000000000000000000548453631f70facef4e09697e0d2e5f4e149db730000000000000000000000000000000000000000000000000000000083104ec1a0b039e7ee7c3cac62dbbad4334e9115630ea77480e49c77e66ac65fed4361ac83a00adf32f7d6e5c5d9ccf4fc694b793bdc693884de263e8355794805cd89a499c5000002b3f902b0820f22850ba43b74008302e6fb94cbbc5da52ea2728279560dca8f4ec08d5f82998580b902446f888fa10000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000e0793d76b8a0c82d19f5829015799705b1c665cc955adf1d3e5c658525f4ee77cc1675a428039c82c3a8ffe6f3a7cb1621230c08444566077459300d8ee2403de2000000000000000000000000000000000000000000000000000000000000a427000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7363726f6c6c2d7365706f6c69610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000041402a8f05776a363cfbfa77f62c320234b0dea18eba182e5570609c87645a159636f686f7eb82f9b5c0419396a161b6403d4b01bc9a7191509974c1cb56a0ce8a1b0000000000000000000000000000000000000000000000000000000000000083104ec2a096da96cdde4dad6e5495fb73032063a5cbd8b521a4d136ae6db61237a48a2b25a03b12b04491b2dacbe8602d223217a0dfa0efd7f2f99c1808413fedf14fa166b5000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec87060a24181e4000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b400000000000000000000000000000000000000000000000000060a24181e4000000000000000000000000000000000000000000000000000075a9fd3e2ed5e9e0000000000000000000000000000000000000000000000000005bcd57d4ff00000000000000000000000000000000000000000000000000006fc7e3c7dfb19c0000000000000000000000000fd0e0c11bd40d7052cb86a76d6c645787dbfda520000000000000000000000000000000000000000000000000000000064ef365c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a0a17ccfa20b473ef89f96806bfcda65828ba5f3380371701a53f206c2c5cbbf7ca036e99a208d4f49ed094d8dcfcfefe3e2736b942020f20c493c477ce39957fb9e000000b5f8b345850ba43b7400830433c3949ad3c5617ecaa556d6e166787a97081907171230865af3107a4000b844c7cdea3700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000083104ec2a0ae0ae83ce8bf3f2eb648958a360dac3cf734467d0476b230ace81140520602fda014a2c94571cc914ef7db33df4f98e80f55ca155c869b507ac31602b043c96e4c000000000000000000000000000000000000000000000000000000000000000000176105000000000005203e0000000064ef32e5000000000000000000000000000000000000000000000000000000000000000000000000007a120000030000000000000005203f0000000064ef32e8000000000000000000000000000000000000000000000000000000000000000000000000007a12000005000000000000000520400000000064ef32eb000000000000000000000000000000000000000000000000000000000000000000000000007a12000001000000000000000520410000000064ef32ee000000000000000000000000000000000000000000000000000000000000000000000000007a12000002000000000000000520420000000064ef32f1000000000000000000000000000000000000000000000000000000000000000000000000007a120000030000000002d8f902d505850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec87038d7ea4c68000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b400000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000004536d3a18df52c3000000000000000000000000000000000000000000000000000360051c896000000000000000000000000000000000000000000000000000041c0e2a646dc1c0000000000000000000000000c47f3b8497d221999b9dc540ad5f21fa581e4f9a0000000000000000000000000000000000000000000000000000000064ef366200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a0108868a8dcb350044b75a6e3cffcf4acf3ba0f7a53d718c9865453bd6d455242a074c280fb40b57efa2e08b50b55aeeb30abf6e4e496e330643d7a69be3e3b11af00000171f9016e0c850ba43b7400830557309448914c788295b5db23af2b5f0b3be775c4ea944080b9010402c205f00000000000000000000000002c9678042d52b97d27f2bd2947f7111d93f3dd0d000000000000000000000000000000000000000000000000000000001dcd6500000000000000000000000000b4518a802a1a42050c4e27bcec1e7ae15149170300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ef40d1000000000000000000000000000000000000000000000000000000000000001b2f5536d4f75c9c2c64630ede2158bda62aa96c17e7d3594e96405cc85aa8ded14cd7b67de417954cb2e9bb9dd491b863b5348e7f12d6bd85e34a65c5f9e5112283104ec2a00c8a89588e9949f419cc17ccb14fde31899a6c187c170a13bda53135bd6467b6a035ba5db429b2b45513e5fe3a4949044ea3641f1f1d7ac0a3522de6a74c6a025a000000aef8ac05850ba43b7400827ced94d9692f1748afee00face2da35242417dd05a861580b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec0000000000000000000000000000000000000000000000015a6d1a4a4139eb4e83104ec2a0d259cf5a8c5a9dea052c712740145069584add7ef738210f3fa0676ddc247c72a0345918f63e56cfdacb52eb6276e8fcb0ec621a0edeee754afefc21a5316eebd0000000b7f8b5038512a05f2000830433c3949ad3c5617ecaa556d6e166787a9708190717123088016345785d8a0000b844c7cdea37000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000000000000083104ec2a093cf39127cdb9019de1ef47f2c02d3a19dd39cba39149fdc02e81048b1e97a83a02caceb646a098c4c8877a3c6796ecdf9a8fc540e28a39f6306ffcb9df566928700000070f86e02850ba43b740082520894ccdf5f933a2caf4fff8090e2aa1c9d02b02ffd20872386f26fc100008083104ec2a09269f9104aece2de5fabc1bf08eb7607d5f6535d3a867fb0878d1aac36e123fda03538cffc4a7ce687420b3fd3f66a8509dcff2e0b0cd82533560c9a40a87a993300000072f870821bcb850ba43b74008261a8944c66467e6e84ff10c9bbf82059912fee08a36df787470de4df8200008083104ec1a0af1394538c0400fae2b8e24ce69d61f1e9dd44691de695dbb7a16964cce03eeba06d80e279c0915db15b71e1816500713ab9e40e65d2b76da2a303a9c27c61a00b000000aef8ac2c850ba43b740082973494d9692f1748afee00face2da35242417dd05a861580b844095ea7b300000000000000000000000017afd0263d6909ba1f9a8eac697f76532365fb95ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec2a0b74f8f74c67140fb7729de8b3460595d5737fb74077cb16cc78504fb71bf6ed6a066b8acce7c293676fa5d5b78abcf7cf702ac3a2dcb044f1d58ca09be07c96fe600000296f902931984773594008304288e9477132b63429718db2b6ad8d942ee13a198f6ab498609184e72a000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001fa4a500f0b2d24a1b94c052ff058d0d745589d6000000000000000000000000000000000000000000000000000009184e72a00000000000000000000000000000000000000000000000000000354650dab54e0a0000000000000000000000000000000000000000000000000000000064ef3531000000000000000000000000000000000000000000000000000000000000002bfa6a407c4c49ea1d46569c1a4bcf71c3437be54c0007d0551197e6350936976dffb66b2c3bb15ddb72325000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a0ff31d88db9d3508a2edb68cf07c7a3ec428c2bb64142613a65476bb339d32abda046d9a11eac74cf01b09f7671803ad2ca68a1397fc6dc4d75c0a89e1ada09db62000002b1f902ae07850ba43b74008303005d9417afd0263d6909ba1f9a8eac697f76532365fb9580b902445ae401dc0000000000000000000000000000000000000000000000000000000064ef3408000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000d9692f1748afee00face2da35242417dd05a8615000000000000000000000000530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000001b0bc0acfc83201a9000000000000000000000000000000000000000000000000019ec7954e4708ad000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c000000000000000000000000000000000000000000000000019ec7954e4708ad0000000000000000000000008c25caf7e3873d1d5b4973ff7e13af004d7c98cc0000000000000000000000000000000000000000000000000000000083104ec2a05c79dc543118060bb7d36201807128a92a1f4a069f7f005ad2582de77047f197a03552f6704ebb42287958479dcccc7cda74e5eae56c412a5e6e154b20bb28ce6d000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec87071afd498d0000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b400000000000000000000000000000000000000000000000000071afd498d000000000000000000000000000000000000000000000000000008a6da05235ad30c0000000000000000000000000000000000000000000000000006c00a3912c00000000000000000000000000000000000000000000000000008381beb47fcae80000000000000000000000000d93dd9937f90791afd47cf1818524cd2eff4ca760000000000000000000000000000000000000000000000000000000064ef366900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a094b6380d5c72b504c9ce332faee04f88684b6fe0817945f60457f1c29245807da06113c48a1a92a1256346cbe5a74717304aa65c0df0c3f73644710c5e17280c7a000002b1f902ae048506fc23ac008302cffc9417afd0263d6909ba1f9a8eac697f76532365fb9580b902445ae401dc0000000000000000000000000000000000000000000000000000000064ef33e7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000d9692f1748afee00face2da35242417dd05a8615000000000000000000000000530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000006125527c1fd8d7a8000000000000000000000000000000000000000000000000005d20aeec27d756000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c000000000000000000000000000000000000000000000000005d20aeec27d7560000000000000000000000006d67f0f1593b060cd2ee397b7b66f6bfa98c504d0000000000000000000000000000000000000000000000000000000083104ec2a07383bfa659c417a5adfd012677512ce1708601dcbae48dce450d0fb5694c17bba0376c8e73977be61476a29bd1c3757a2b8f2d22aa5216113d2cfe2e15440478d4000000aff8ad1a850ba43b7400830110dd94fa94da175be505b915187edc8ae2f62f4ccbf84880b844095ea7b3000000000000000000000000ce87dbc5176cf0e37cf54741faf30e3e489e1799fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe83104ec2a074524c2a7c0b1248b132e2d91d0cf430d755131da7397fc30e1ddf622ec7bddda0333ceb0426f2613ff83d032d656202851675ab6d45dc0c0e45bcfa5637feefea0000008ef88c10850ba43b7400830113e79435d02cafb57424828e3c56a2e06d1fbd1d9d9d5e80a4a0712d68000000000000000000000000000000000000000000000000000000000000000183104ec1a04062167b29bb2bd12d3f1911d8ff64fe07755a03037d7dc94b5aa198ead497e8a0085acaa868e531917bee517ea987d5acdc20ada756c9b2e0e0dad89b8af07e04000002b1f902ae2d850ba43b7400830376ba9417afd0263d6909ba1f9a8eac697f76532365fb9580b902445ae401dc0000000000000000000000000000000000000000000000000000000064ef3414000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000d9692f1748afee00face2da35242417dd05a8615000000000000000000000000530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000531ab7f93975a7c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c0000000000000000000000000000000000000000000000000531ab7f93975a7c000000000000000000000000ece5858ff6ac4bae6af42b483e84f9655a23b6520000000000000000000000000000000000000000000000000000000083104ec2a0956f3fbcb30cc21fb015edc82d08559d135f88171c13c8d728837ffc5b6e0708a05ff5398d5edfddae49824c34a3d1a00ac1bd3e14045234cc8598d9d28d01b9d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fe80400000000000520430000000064ef32f4000000000000000000000000000000000000000000000000000000000000000000000000007a12000007000000000000000520440000000064ef32f7000000000000000000000000000000000000000000000000000000000000000000000000007a12000005000000000000000520450000000064ef32fa000000000000000000000000000000000000000000000000000000000000000000000000007a12000004000000000000000520460000000064ef32fd000000000000000000000000000000000000000000000000000000000000000000000000007a120000060000000002d8f902d507850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8704f94ae6af8000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000004f94ae6af8000000000000000000000000000000000000000000000000000060e6598a3eee1b30000000000000000000000000000000000000000000000000004b9a0c18d200000000000000000000000000000000000000000000000000005c0e08435562340000000000000000000000000196540b2697bb289b5825f3a8b0172182188c23e0000000000000000000000000000000000000000000000000000000064ef366f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a02b0058eb3eae76335fd0f5b3f51dec8550714f81292105c918d559f91ebd47f0a0316f757f6f93369afcd4da925c71b9f0dd4f4f4d9775aa82ebde9e0df8367438000000aef8ac04850ba43b740082c0b194d9692f1748afee00face2da35242417dd05a861580b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec000000000000000000000000000000000000000000000001236efcbcbb34000083104ec2a0b797596263e28bdd397c087cf5a94c68c7a6d0de6b78a35744167cf21c4acd7ca03a434df1d2db3a021b2310ecbe1d6325d4d61ff7156f843f64f28f79fe5db203000002d3f902d082028f850ba43b74008307a120946654b9c2b98d2bc001fe8937d6636b1398c61ccb80b90264c9807539000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008009703b19ba1ef5d2183a2c61662d8400002dce060203010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000027d3f9bcf140000000000000000000000000000000000000000000000000000027d563ce9400000000000000000000000000000000000000000000000000000027d85be2a800000000000000000000000000000000000000000000000000000027d8da26e000000000000000000000000000000000000000000000000000000000000000002d2dc073eb930fcf451323edc2152b2d4a1e5300236226adfc378c32aa7331a18835d106847a1e560c2cb260cb7bec0e90a703adb24d9166a810d9372c43a8abe00000000000000000000000000000000000000000000000000000000000000027c759518700abee2a4a1b24c2a6b8841e88de97e6ac40de288931a67affa953f5e4eafd38f75570db91df133ce9e48bc3ce6042db7804162efc0cda72c4cd7e983104ec2a01819ed768910e8467b1d3bbd43a35f0726fe16213a909d18fb2a742e2f87891fa035e28043829f9d8f9463c3882ecaef3a1f07a29f2a07486532d176ce0452ff0100002653f9265002850ba43b7400831a3eb88080b925fa60806040523480156200001157600080fd5b506040516200251a3803806200251a8339818101604052810190620000379190620004ad565b828281600390816200004a919062000788565b5080600490816200005c919062000788565b5050506200007f620000736200009a60201b60201c565b620000a260201b60201c565b6200009133826200016860201b60201c565b5050506200098a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001d190620008d0565b60405180910390fd5b620001ee60008383620002d560201b60201c565b806002600082825462000202919062000921565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002b591906200096d565b60405180910390a3620002d160008383620002da60201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034882620002fd565b810181811067ffffffffffffffff821117156200036a57620003696200030e565b5b80604052505050565b60006200037f620002df565b90506200038d82826200033d565b919050565b600067ffffffffffffffff821115620003b057620003af6200030e565b5b620003bb82620002fd565b9050602081019050919050565b60005b83811015620003e8578082015181840152602081019050620003cb565b60008484015250505050565b60006200040b620004058462000392565b62000373565b9050828152602081018484840111156200042a5762000429620002f8565b5b62000437848285620003c8565b509392505050565b600082601f830112620004575762000456620002f3565b5b815162000469848260208601620003f4565b91505092915050565b6000819050919050565b620004878162000472565b81146200049357600080fd5b50565b600081519050620004a7816200047c565b92915050565b600080600060608486031215620004c957620004c8620002e9565b5b600084015167ffffffffffffffff811115620004ea57620004e9620002ee565b5b620004f8868287016200043f565b935050602084015167ffffffffffffffff8111156200051c576200051b620002ee565b5b6200052a868287016200043f565b92505060406200053d8682870162000496565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200059a57607f821691505b602082108103620005b057620005af62000552565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200061a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005db565b620006268683620005db565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000669620006636200065d8462000472565b6200063e565b62000472565b9050919050565b6000819050919050565b620006858362000648565b6200069d620006948262000670565b848454620005e8565b825550505050565b600090565b620006b4620006a5565b620006c18184846200067a565b505050565b5b81811015620006e957620006dd600082620006aa565b600181019050620006c7565b5050565b601f82111562000738576200070281620005b6565b6200070d84620005cb565b810160208510156200071d578190505b620007356200072c85620005cb565b830182620006c6565b50505b505050565b600082821c905092915050565b60006200075d600019846008026200073d565b1980831691505092915050565b60006200077883836200074a565b9150826002028217905092915050565b620007938262000547565b67ffffffffffffffff811115620007af57620007ae6200030e565b5b620007bb825462000581565b620007c8828285620006ed565b600060209050601f831160018114620008005760008415620007eb578287015190505b620007f785826200076a565b86555062000867565b601f1984166200081086620005b6565b60005b828110156200083a5784890151825560018201915060208501945060208101905062000813565b868310156200085a578489015162000856601f8916826200074a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620008b8601f836200086f565b9150620008c58262000880565b602082019050919050565b60006020820190508181036000830152620008eb81620008a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200092e8262000472565b91506200093b8362000472565b9250828201905080821115620009565762000955620008f2565b5b92915050565b620009678162000472565b82525050565b60006020820190506200098460008301846200095c565b92915050565b611b80806200099a6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102a6578063a457c2d7146102c4578063a9059cbb146102f4578063dd62ed3e14610324578063f2fde38b146103545761010b565b806370a0823114610232578063715018a61461026257806379cc67901461026c5780638da5cb5b146102885761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806340c10f19146101fa57806342966c68146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610370565b6040516101259190611178565b60405180910390f35b61014860048036038101906101439190611233565b610402565b604051610155919061128e565b60405180910390f35b610166610425565b60405161017391906112b8565b60405180910390f35b610196600480360381019061019191906112d3565b61042f565b6040516101a3919061128e565b60405180910390f35b6101b461045e565b6040516101c19190611342565b60405180910390f35b6101e460048036038101906101df9190611233565b610467565b6040516101f1919061128e565b60405180910390f35b610214600480360381019061020f9190611233565b61049e565b005b610230600480360381019061022b919061135d565b6104b4565b005b61024c6004803603810190610247919061138a565b6104c8565b60405161025991906112b8565b60405180910390f35b61026a610510565b005b61028660048036038101906102819190611233565b610524565b005b610290610544565b60405161029d91906113c6565b60405180910390f35b6102ae61056e565b6040516102bb9190611178565b60405180910390f35b6102de60048036038101906102d99190611233565b610600565b6040516102eb919061128e565b60405180910390f35b61030e60048036038101906103099190611233565b610677565b60405161031b919061128e565b60405180910390f35b61033e600480360381019061033991906113e1565b61069a565b60405161034b91906112b8565b60405180910390f35b61036e6004803603810190610369919061138a565b610721565b005b60606003805461037f90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab90611450565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b5050505050905090565b60008061040d6107a4565b905061041a8185856107ac565b600191505092915050565b6000600254905090565b60008061043a6107a4565b9050610447858285610975565b610452858585610a01565b60019150509392505050565b60006012905090565b6000806104726107a4565b9050610493818585610484858961069a565b61048e91906114b0565b6107ac565b600191505092915050565b6104a6610c77565b6104b08282610cf5565b5050565b6104c56104bf6107a4565b82610e4b565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610518610c77565b6105226000611018565b565b610536826105306107a4565b83610975565b6105408282610e4b565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461057d90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990611450565b80156105f65780601f106105cb576101008083540402835291602001916105f6565b820191906000526020600020905b8154815290600101906020018083116105d957829003601f168201915b5050505050905090565b60008061060b6107a4565b90506000610619828661069a565b90508381101561065e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065590611556565b60405180910390fd5b61066b82868684036107ac565b60019250505092915050565b6000806106826107a4565b905061068f818585610a01565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610729610c77565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f906115e8565b60405180910390fd5b6107a181611018565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108129061167a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108819061170c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096891906112b8565b60405180910390a3505050565b6000610981848461069a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109fb57818110156109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e490611778565b60405180910390fd5b6109fa84848484036107ac565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061180a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad69061189c565b60405180910390fd5b610aea8383836110de565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b679061192e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5e91906112b8565b60405180910390a3610c718484846110e3565b50505050565b610c7f6107a4565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610544565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061199a565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b90611a06565b60405180910390fd5b610d70600083836110de565b8060026000828254610d8291906114b0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e3391906112b8565b60405180910390a3610e47600083836110e3565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190611a98565b60405180910390fd5b610ec6826000836110de565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390611b2a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fff91906112b8565b60405180910390a3611013836000846110e3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611122578082015181840152602081019050611107565b60008484015250505050565b6000601f19601f8301169050919050565b600061114a826110e8565b61115481856110f3565b9350611164818560208601611104565b61116d8161112e565b840191505092915050565b60006020820190508181036000830152611192818461113f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111ca8261119f565b9050919050565b6111da816111bf565b81146111e557600080fd5b50565b6000813590506111f7816111d1565b92915050565b6000819050919050565b611210816111fd565b811461121b57600080fd5b50565b60008135905061122d81611207565b92915050565b6000806040838503121561124a5761124961119a565b5b6000611258858286016111e8565b92505060206112698582860161121e565b9150509250929050565b60008115159050919050565b61128881611273565b82525050565b60006020820190506112a3600083018461127f565b92915050565b6112b2816111fd565b82525050565b60006020820190506112cd60008301846112a9565b92915050565b6000806000606084860312156112ec576112eb61119a565b5b60006112fa868287016111e8565b935050602061130b868287016111e8565b925050604061131c8682870161121e565b9150509250925092565b600060ff82169050919050565b61133c81611326565b82525050565b60006020820190506113576000830184611333565b92915050565b6000602082840312156113735761137261119a565b5b60006113818482850161121e565b91505092915050565b6000602082840312156113a05761139f61119a565b5b60006113ae848285016111e8565b91505092915050565b6113c0816111bf565b82525050565b60006020820190506113db60008301846113b7565b92915050565b600080604083850312156113f8576113f761119a565b5b6000611406858286016111e8565b9250506020611417858286016111e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061146857607f821691505b60208210810361147b5761147a611421565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114bb826111fd565b91506114c6836111fd565b92508282019050808211156114de576114dd611481565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006115406025836110f3565b915061154b826114e4565b604082019050919050565b6000602082019050818103600083015261156f81611533565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006115d26026836110f3565b91506115dd82611576565b604082019050919050565b60006020820190508181036000830152611601816115c5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006116646024836110f3565b915061166f82611608565b604082019050919050565b6000602082019050818103600083015261169381611657565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006116f66022836110f3565b91506117018261169a565b604082019050919050565b60006020820190508181036000830152611725816116e9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611762601d836110f3565b915061176d8261172c565b602082019050919050565b6000602082019050818103600083015261179181611755565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117f46025836110f3565b91506117ff82611798565b604082019050919050565b60006020820190508181036000830152611823816117e7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006118866023836110f3565b91506118918261182a565b604082019050919050565b600060208201905081810360008301526118b581611879565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006119186026836110f3565b9150611923826118bc565b604082019050919050565b600060208201905081810360008301526119478161190b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119846020836110f3565b915061198f8261194e565b602082019050919050565b600060208201905081810360008301526119b381611977565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006119f0601f836110f3565b91506119fb826119ba565b602082019050919050565b60006020820190508181036000830152611a1f816119e3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a826021836110f3565b9150611a8d82611a26565b604082019050919050565b60006020820190508181036000830152611ab181611a75565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b146022836110f3565b9150611b1f82611ab8565b604082019050919050565b60006020820190508181036000830152611b4381611b07565b905091905056fea26469706673582212204df6f0de305c90d5e7f095ff995f5884e7b51d307b600671a909171759701b0f64736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000000000000272720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004656665650000000000000000000000000000000000000000000000000000000083104ec2a06c5bf08273c9572481612ebc6be5916246363d2ac4b31162683f3d8d8690b67aa05e9560c01e52cc196fad30c28c32cfdc5f9baf70b062db72c1be198890ea5320000001b1f901ae06850ba43b74008304b131943687ee3fb77c299e287d7a7fd4467623a4e49c4c80b90144ded9382a000000000000000000000000690000ef01dece82d837b5faa2719ae47b15669700000000000000000000000000000000000000000000000000bf8ebf9cf4bb380000000000000000000000000000000000000000000000012f5e21cb93e16c3d00000000000000000000000000000000000000000000000000007d308366a1ba0000000000000000000000008af20afecf5f4ee4fdab4c2349d764ed06f917280000000000000000000000000000000000000000000000000000000064ef37a30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b2ac824ebc924643900ad018b366d583929b46ce3d27aeb15efecba6769b184ce465884873a68c5a1f968e2de490c5516d644a824798db12dcc7198f285b5913783104ec1a09c3b5a97ee7aa0010c42c9229b133457f075ccb3fc81cdce4f0bca01e7cba8b0a00869989f4f5f630f676aa7311a8c03a2f93665043c7c88b0a8653ecf348646190000008ef88c1a850ba43b74008301bd4194e62a60247d0b9c1d09193b0f60875bc49878f5df80a4e6be6c66000000000000000000000000000000000000000000000000000000000000311383104ec2a0b3aab19664bc4a6bde25832ff086c78f24a2e2b8a3574d23fbb260dc303bd8d0a0013f22bc43bdeaf038f4d6fd28ea98d6447360e41ca484da8ecb4b548ecf68ba00000074f87208850ba43b740082ca9094530000000000000000000000000000000000000487014d8ad652491b84d0e30db083104ec1a049db2c1ef445e222fe62cf04fb741fa40db8cad29041d4ec56cf3c47139d6791a01318af076b0be4692dbf2c9eedfd7b2c492309a5785ffee169cd7a3651ffa1e000000218f9021509850bdfd63e008304b4149417afd0263d6909ba1f9a8eac697f76532365fb958701f438daa06000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef59ff00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a861500000000000000000000000000000000000000000000000000000000000001f40000000000000000000000009e879eaaa79d228e4d371b49c8a0c6628c2a14a50000000000000000000000000000000000000000000000000001f438daa060000000000000000000000000000000000000000000000000000203c1364d3fb3a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a002d951d3ad6fc72df865696c315ec7d95a09434d7c15ca57eebd4b1e4ad6a448a02d189e6c5bf3a8d2ed5076c23ac96e56e9ead865a3cf6385d2db70e28fbfe41200000218f9021501850ba43b74008302cfae9417afd0263d6909ba1f9a8eac697f76532365fb958717a93c16344000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef340200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000002710000000000000000000000000cca7589b2742e57ff55d04e4f6a96aaa5879a13d0000000000000000000000000000000000000000000000000017a93c163440000000000000000000000000000000000000000000000000001ccb69a0abf6cdd600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a087f2909a5db333b84fb65ecf1a3a60edae163965d5718b4e27f2f32596560a38a05b26a183721f7c2cf2c19831b8e3ec45288a530a76501602e1ac976001e416c200000075f87380850ba43b740082c2c09453000000000000000000000000000000000000048801aa535d3d0c000084d0e30db083104ec1a049a7cd2a9cf8da5026de077bae6ba45fc3687159fa90f19a4a918177ea21c6c8a04f16ce1faf346cbc3a03b5765436f4253fd171652934497b600ff11a535e07f8000000aef8ac09850ba43b740082b77a94affb188e9e098ac7d9ca3eca6284384e95d65f4380b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec000000000000000000000000000000000000000000000001ac7fc685306c98d783104ec2a08c16ca932639b0eec4e5c2fd5e9912a2756853434f17333ed8de6f0ce5b320cba0268b33542b72737242ee7a9f14285f2741b6694f233d12a9928a88eb1cb3d1b400000072f8708204b4850ba43b74008252089496346c9be6a7b3ca510f5b1e80ac8fb444bfc0d387038d7ea4c680008083104ec1a0be619b6aa2fd87505becb1cd0ab9060a95e3315b4c0faa2c4150ff7a9bef20a5a0088978180a1bc70ede21ce4c462f1fbab8075866c33694cdbde5356201adaba1000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8703e871b540c000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000003e871b540c00000000000000000000000000000000000000000000000000004c22b5366292fc80000000000000000000000000000000000000000000000000003b66c05ca5000000000000000000000000000000000000000000000000000048542c26dda53c000000000000000000000000086453d694fea978566d1531c75264304665ac05c0000000000000000000000000000000000000000000000000000000064ef367600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a075e3af69fe6d07225409dc53e867890dd7043a8e7e7d42c9850d7bf74316d568a00d31e015d2a7e868ed1137ef2b878bd7f1dfa128e116477ba3df779a46eed0730000008ef88c55850ba43b74008301224794e62a60247d0b9c1d09193b0f60875bc49878f5df80a43fc0287f000000000000000000000000000000000000000000000000000000000000060683104ec1a0dc3ad3c65251ce0c8f8ab864c2a03c54cacee1dbf1618c74eaa3aa8e13e35ce9a03d2afc4522d811058c9ec6fe881fcc1417165239d0638af4b28069e2c383750b000000b5f8b346850ba43b740083040abc949ad3c5617ecaa556d6e166787a97081907171230865af3107a4000b844c7cdea3700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000083104ec2a0d8211bbcf89cddfb8a005014325bbc368d8de98bed2ce378bfc843f2c39f1ebba03c5c01776911d569b6ae7ff0e16d6714e4fda24ed3f7994d61ab0f32ae3aa04200000072f870821bcc850ba43b74008261a894489e5ae86575d964b37319d3c03761ebbfe0ccb687470de4df8200008083104ec2a0d9e44af785cc9333ad21e02f8ef38dad904be1a5a6edccf2165838823576fa93a00623f8ae8712dd7a0f1bcab988e1acc4682ea7c262fba34a23d173213dfcb0d900000070f86e03850ba43b740082520894ccdf5f933a2caf4fff8090e2aa1c9d02b02ffd20872386f26fc100008083104ec1a0ed8b7022f02bf2a7aefb173f52f4abe8a9f26bc6f9a0f38e9f33611dbaf68786a0586e2bf2c50298745d6e4fc689a5a35ba2fe479de95c259eeb62493aee3e59f6000001b9f901b604850ba43b74008301e0818080b90160608060405234801561000f575f80fd5b506101438061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80632e64cec1146100385780636057361d14610056575b5f80fd5b610040610072565b60405161004d919061009b565b60405180910390f35b610070600480360381019061006b91906100e2565b61007a565b005b5f8054905090565b805f8190555050565b5f819050919050565b61009581610083565b82525050565b5f6020820190506100ae5f83018461008c565b92915050565b5f80fd5b6100c181610083565b81146100cb575f80fd5b50565b5f813590506100dc816100b8565b92915050565b5f602082840312156100f7576100f66100b4565b5b5f610104848285016100ce565b9150509291505056fea2646970667358221220b5c3075f2f2034d039a227fac6dd314b052ffb2b3da52c7b6f5bc374d528ed3664736f6c6343000814003383104ec1a0a563ff08b2be5ebcd48ce91e0dd86c7f2df812907fb8b0ea6815357b3154d002a07aff250448957f6e9fd610f6ce33e4e7d7fc79571218ba6046ee1ea8042b2e19000000d2f8d080850ba43b74008302bafa8080b87b6066806015600039303360006000a2806000f350fe6000803560e01c60008114602e5760018114603a5760028114604657600381146052576101008114605e576063565b6372cc7b018283a16063565b6378e86b638283a16063565b63c11557ea8283a16063565b63a93b43ad8283a16063565b308283a15b505083104ec1a0dad46eac2bd8095533a12aace7eeb950ba9a0716f281468ac106423681f39ff7a00b3a57f071ea2ce6f877904c7c8e7289f696d79259c8b5d8870052900770c443000000aff8ad2d850ba43b74008309660694837a9f1803d84a341a343f05be9705dec4b81f9380b844e2bbb15800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000b1d5f3c090b9eaf83104ec1a02cbf28f320f52c31d5e9fc2b3e4918af7473369ba566999e4261f441bff6623fa0437e4334549790cba9ea122399cbc130b6a67f6591381ad1ce1a9e7a9e70e7e30000008ef88c54850ba43b74008301224794e62a60247d0b9c1d09193b0f60875bc49878f5df80a43fc0287f000000000000000000000000000000000000000000000000000000000000060783104ec2a089091c9817db9704d756f806aeeb09ee56c626d0319ed5bf3ace7bc004b1b697a07e17b5a89e611e79c7e13d89aadc2a705c89172f5a6951262c474d1f8759a17d000000b6f8b405850ba43b7400830433c3949ad3c5617ecaa556d6e166787a9708190717123087038d7ea4c68000b844c7cdea3700000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000000083104ec2a067dcfeb65edc1518257b749a6c7c042efa3c49c111078f2574b569618b0ada87a06f989bc2a89b1b1ada45c7a4860bda9249f711d13be9083cd7a38c56c9cd4faa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019920300000000000520470000000064ef3300000000000000000000000000000000000000000000000000000000000000000000000000007a12000007000000000000000520480000000064ef3303000000000000000000000000000000000000000000000000000000000000000000000000007a12000006000000000000000520490000000064ef3306000000000000000000000000000000000000000000000000000000000000000000000000007a120000020000000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8705543df729c000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000005543df729c000000000000000000000000000000000000000000000000000067d23ad800a561f00000000000000000000000000000000000000000000000000051007aace1000000000000000000000000000000000000000000000000000062a151806703800000000000000000000000000af69b50a2737ab31b1413c3909d192a12266fedf0000000000000000000000000000000000000000000000000000000064ef367b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a086909e983b0c23a44e4fff004f186f05dfe931670ef53214aa88a3ec5f054d96a068ae079571cf79cf257168709ad7d4042552e5b0bce76fdbd2edb5cb1480bf76000002b3f902b0820f23850ba43b74008302e6fb94cbbc5da52ea2728279560dca8f4ec08d5f82998580b902446f888fa10000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000e01675a428039c82c3a8ffe6f3a7cb1621230c08444566077459300d8ee2403de251306f4437c2b57b58dc21323f7803252e0c69fae9bfad82f5ebfa8f7b8c728b000000000000000000000000000000000000000000000000000000000000a42d000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7363726f6c6c2d7365706f6c69610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000041c047d485917fba7c01e81d84494412ba6294deb2368c50f93733ea63aff8a98b23c090845dd0f31ed2471360f26dde8352ef47b971ada379a4dcc7ddee8aeff61b0000000000000000000000000000000000000000000000000000000000000083104ec1a0a1cc97be360954a43ae9a62bdd494cc1bcb8221196d49ab8b1388251aaa89932a01df1a3c877db83834de89c4079ca1634c20ca94156a5b734df4d78272ca40249000000aef8ac0d850ba43b740082d23394efbb3810c4347f416d2a24ee37b09b466b6eac1580b844095ea7b3000000000000000000000000bf57ef344114bb5d443d916700c7bcefb6750e150000000000000000000000000000000000000000000000104e82fb07aa1c6a3f83104ec1a023e8dede9c57e77182b43ccfdd430f76daa57d6a3526d48cc463e496082b190aa019a33660d8158c874cb969edbdccf63f134a5e74d4a9218846ecfba9ac066dcd00000172f9016f8183850ba43b7400830289fb943687ee3fb77c299e287d7a7fd4467623a4e49c4c80b9010418cbafe5000000000000000000000000000000000000000000000ed2b525841adfc0000000000000000000000000000000000000000000000000000004fa49781e46f42000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000058d089cb9d224433e94060a33b3fecccc30e4ea60000000000000000000000000000000000000000000000000000000064ef37a50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000690000ef01dece82d837b5faa2719ae47b156697000000000000000000000000530000000000000000000000000000000000000483104ec1a0429e2174755f06d1cb02a83cf630e91a2012a8873708e46892e57151dc1b69f3a07412d23975163b6d66127dd21bd9edd968bff39f0ebceca63f7d6d81c8ce170400000075f87307850ba43b740082ca9094530000000000000000000000000000000000000488016345785d8a000084d0e30db083104ec1a09be494b71fbdc7cd41858e6cbcd2905c19738c870690c90e019cd63edc128bd3a063c51d588d97755460da3da16c2ef3eefc0df23cbfe974d0d1f0d411890d824000000072f870821bcd850ba43b74008261a8948a3ef1c26b75191f4b7d450deabaa9a32d186a3587470de4df8200008083104ec2a04a14cca88084da9e537358f21ea0304eae12f32b8678003ee8ca4b6deee280eba05316b5cff04a15e7ba43f774655ee1935c0d82aa29b9063441aec1197b3a522c00000296f902931a84773594008304288e9477132b63429718db2b6ad8d942ee13a198f6ab498609184e72a000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001fa4a500f0b2d24a1b94c052ff058d0d745589d6000000000000000000000000000000000000000000000000000009184e72a00000000000000000000000000000000000000000000000000000354650dab54e0a0000000000000000000000000000000000000000000000000000000064ef3543000000000000000000000000000000000000000000000000000000000000002bfa6a407c4c49ea1d46569c1a4bcf71c3437be54c0007d0551197e6350936976dffb66b2c3bb15ddb72325000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a00cedc69fd67702d8add5b883dd0c16e5d7f69c687fd36677b89a06bf092c35dfa05ff26dfdb45771aebe0760a7e62df7a25b65f2e80070b033736f22957fb8ff0400000211f9020e06850ba43b740083028d0c940e7432dffc781e74014e0bb6d9c20f117a3c77e080b901a484bb1e4200000000000000000000000077133e1e255586d871bf5e3119397df3bdd3281d000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a06e420347fba565829810afa1d3ab5e74d56b9b98bd39197f15dac73acd3b4ad5a066a61e8e880dc513b858551cfc6954996e2509ab5693d4b71c98a97205465eaa0000008df88b09850ba43b740082a72794530000000000000000000000000000000000000480a42e1a7d4d00000000000000000000000000000000000000000000000000014d8ad652491b83104ec2a06a874f363167a145592fab5674c82ef6081c50037c225f880d0545bea63578d5a074535ac352e426952311b1ddb582ba8412c7435426c4590ca74ab5aaafe8035b00000219f902162e850ba43b74008302b2329417afd0263d6909ba1f9a8eac697f76532365fb9588027f7d0bdb920000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef341d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000002710000000000000000000000000ece5858ff6ac4bae6af42b483e84f9655a23b652000000000000000000000000000000000000000000000000027f7d0bdb9200000000000000000000000000000000000000000000000000030a1c9dff7549432700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a09becdcf7064aa04914df53495249e1737486c9c47bdcac7bb78ddf628d3bd6a4a0275ae09627bd306f9284c8d35905a46e073bbd7458f8dcd2ce5a74325d01fdf5000000aef8ac0a850ba43b740082dd7794affb188e9e098ac7d9ca3eca6284384e95d65f4380b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec000000000000000000000000000000000000000000000001ac7fc685306c98d783104ec1a01178419cacb2f42cde8ea50b258b52e0b0e38406994f37974ba013c79c9af7b5a01ddea566b38184707b51d247ee6f89234f504579781163fcba7f0bb43828a9910000008ef88c57850ba43b74008301224794e62a60247d0b9c1d09193b0f60875bc49878f5df80a43fc0287f000000000000000000000000000000000000000000000000000000000000060883104ec2a0b958418dc8b0c7d47b42e750bf30276c374115192e2316ab44b8ef8784338b54a00b4bd4787feee5789d5762148315da76fb5260e8fb669d0378759e1d9c02444200000296f902931b84773594008304288e9477132b63429718db2b6ad8d942ee13a198f6ab498609184e72a000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001fa4a500f0b2d24a1b94c052ff058d0d745589d6000000000000000000000000000000000000000000000000000009184e72a00000000000000000000000000000000000000000000000000000354650dab54e0a0000000000000000000000000000000000000000000000000000000064ef3544000000000000000000000000000000000000000000000000000000000000002bfa6a407c4c49ea1d46569c1a4bcf71c3437be54c0007d0551197e6350936976dffb66b2c3bb15ddb72325000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a038b399c757cf093c3a182eb2e995cf8ae70d2d35903ac42248e136ed5fb8061ea03bd2ac0f60229e6de4ab89d75202a4ab3e680541033a7ca2245b5b5bb4a70930000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8705543df729c000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000005543df729c000000000000000000000000000000000000000000000000000067d23ad8013bbb800000000000000000000000000000000000000000000000000051007aace1000000000000000000000000000000000000000000000000000062a1518067925800000000000000000000000007d93803d87a46022e4d072621b3e8ea0cfda45910000000000000000000000000000000000000000000000000000000064ef368200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a0b61ec3413c9065acdb15c4205866e58d82451d8177e89b52baa1d89b9390326ca03ee0103ce75d32b10f6018bc5581a57649f76082aaf193d75b753264283058f800000218f9021580850ba43b74008302f5579417afd0263d6909ba1f9a8eac697f76532365fb9587b1a2bc2ec50000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef342600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a861500000000000000000000000000000000000000000000000000000000000027100000000000000000000000004da5309c2d10289aff5236b3901478648e061d0c00000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000000000000000000000000000d82a24a0e1a6b47f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a093ad841a204c9b52e93f5bc137b88821b05acc46c28777bd593e54102b5b4b9fa0060293be878252cf16e5f17dfb34c99b5bb62f5541cf4a753fa48c7dfa853258000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017a704000000000005204a0000000064ef3309000000000000000000000000000000000000000000000000000000000000000000000000007a120000050000000000000005204b0000000064ef330c000000000000000000000000000000000000000000000000000000000000000000000000007a120000060000000000000005204c0000000064ef330f000000000000000000000000000000000000000000000000000000000000000000000000007a120000020000000000000005204d0000000064ef3312000000000000000000000000000000000000000000000000000000000000000000000000007a12000002000000000130f9012d1b850ba43b74008302d58b94ce87dbc5176cf0e37cf54741faf30e3e489e179980b8c48f6bdeaa00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000ebec21ee1da40000000000000000000000000000000000000000000000000000eb6d7fa9807099c30000000000000000000000009ef3c073fbb1c77a065b76e92ae9d0d2a28cb6db0000000000000000000000000000000000000000000000000000000064ef342883104ec2a034b9f505221a147d06bea1c4e4aea11520a3958d1b08c1220e16b817049c7b47a0667af8c9e559c663c461b29043131b5d0edb61f2607e98f37a377a984747582f00000231f9022e0b850ba43b740083065cf594d32548ea5911a6336c5a34061e814148c396ae6f80b901c43e5d877b00000000000000000000000000000000000000000000000000000000aff87bf30000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000004863ee7a6c4f9ca63ba655bacdf6f5bc0a7ea25d00000000000000000000000000000000000000000000000000000000000ea285000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000041c8bafe89384b180012ac8544c2bfda8b6e62ec86ac06ce1dce0944589037cd3f49bd60b340e3387f70dfb8b00fa527b030f089e52ef97f1a8ba6149213d44ccb1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a011103e29e30b240d50d49304ce4c7cfe222164ac4724d550b1efc939be4be534a0621e1fbfdbd666e11069e58f382488cae84bf1f57ad26e005f447cf3377261fa0000008ef88c54850ba43b74008301224794e62a60247d0b9c1d09193b0f60875bc49878f5df80a43fc0287f000000000000000000000000000000000000000000000000000000000000060983104ec1a06df44748084d0b10f0db4913f8e435723d940c5bb31436a6d6b1e81f69042ef3a03bb01d862b24827828bc06672d6a9369052c99bbc6237260e0a6149bb4cf6cef000000cff8cd07850ba43b74008315cd00949629deec040fef7a1ac0748f8bdfe0cb252e45ba80b8649944ba5d000000000000000000000000e310227a350ab8d67e4b15a9eee0f1368586b30b00000000000000000000000000000000000000000000000000000000000000008326065dbbfa9caa5e67cd9de021bb91c86fbf318f3c42aabf5287aa68fb679f83104ec1a057633d4475d99d2584068d6959a85fad640de218a613c15139f74a4b53f84860a048d59de2267c7c4e8af69a0bd94d3e402c6bfe0e3a1b599fe6db7aadb727c00900000296f902931c84773594008304288e9477132b63429718db2b6ad8d942ee13a198f6ab498609184e72a000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001fa4a500f0b2d24a1b94c052ff058d0d745589d6000000000000000000000000000000000000000000000000000009184e72a00000000000000000000000000000000000000000000000000000354650dab54e0a0000000000000000000000000000000000000000000000000000000064ef3546000000000000000000000000000000000000000000000000000000000000002bfa6a407c4c49ea1d46569c1a4bcf71c3437be54c0007d0551197e6350936976dffb66b2c3bb15ddb72325000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a05650a3c99d6eb8a07aab72ab49c7dc898c7e1bfa275adc85de014792041ed809a0517d1640932aeae1a0b427f8756d92d9b6e116c1ce424ba12acb526c5c492208000002d8f902d507850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8705543df729c000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000005543df729c000000000000000000000000000000000000000000000000000067d23ad8013bbb800000000000000000000000000000000000000000000000000051007aace1000000000000000000000000000000000000000000000000000062a151806792580000000000000000000000000763b0a8bdd49de91783ee24938d2d1a423f3df7b0000000000000000000000000000000000000000000000000000000064ef368800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a066b4fa2cbc553375c716e587be3e63e943d5b3406298f69939ace5d8376541bca071bad274b3133594757217051414365044909e7fd3a454dc250af4170c281b3900000218f9021502850ba43b74008302e7d19417afd0263d6909ba1f9a8eac697f76532365fb958705f7f37b390000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef341a00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000002710000000000000000000000000314067e7ca8360f5a7d6f8c3bbf7188462cd26f50000000000000000000000000000000000000000000000000005f7f37b390000000000000000000000000000000000000000000000000000074376b3a0b6a75800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a00bd58a4adbf5cb4352df81caf35c40709feefbb8e0a7bf180d14a3880af8debda0277b079d8167efd24e167e3029df2acf2aea543b2953ccab139ed12b1391914b000000b6f8b403850ba43b740083042452949ad3c5617ecaa556d6e166787a97081907171230872386f26fc10000b844c7cdea37000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000000000083104ec2a0c90a11b2e824e2997793ff9d4107e1b01a98d5cd8f7a9a191c0b5e27e328462ba07ab1ef30737a6e67539bb9bbe4dd0a2009d768aace669ef36ab575e249c3fc9900000075f87301850ba43b740082ca909453000000000000000000000000000000000000048801aa535d3d0c000084d0e30db083104ec2a0147ef8f1f7261e8ffd2c71eb2564aad6768c02eced9dd5304cc533dee3fae4f3a0092f51268e296c2a4efe29f69441b694ef36137c2054ea995f52dfe6a992bd1300000219f9021608850ba43b74008302f6de9417afd0263d6909ba1f9a8eac697f76532365fb95880de0b6b3a7640000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef342600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a861500000000000000000000000000000000000000000000000000000000000027100000000000000000000000008c25caf7e3873d1d5b4973ff7e13af004d7c98cc0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000010dfa3521294389f8700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a02a798da0abed8ae611ad0efe5a7baba742d48ba23f2737161ddc5e14ea9d8256a03de5b082834573558eeafedee46149bb4fadfe9c0080575dda8aa099ba7424e5000000adf8ab04841dcd650082b74c94cae23aaa6ee04b3b70c2da30b75b3af912543a9e80b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec0000000000000000000000000000000000000000033b2e3c9fd0803ce800000083104ec1a03a549b0737b5d2e5fc6ec6fbcb2b969c8e95971c295a55fe15b7d0b100c3bcc3a03c20470c5787761ff2520482623f6d8e25c2bfd51a99c0d4644b6ed3b1bfcfc800000070f86e04850ba43b740082520894ccdf5f933a2caf4fff8090e2aa1c9d02b02ffd20872386f26fc100008083104ec1a068451bfec404d52f88c0fb46d92fce1629687a00f291ca7e3be7a90c62fa987fa026532afc5973f3ba2b6683b6f692cfc1646ee2458bbacc8aba49aa217dabf61400000296f902931d84773594008304288e9477132b63429718db2b6ad8d942ee13a198f6ab498609184e72a000b90224ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000012475ceafe6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001fa4a500f0b2d24a1b94c052ff058d0d745589d6000000000000000000000000000000000000000000000000000009184e72a00000000000000000000000000000000000000000000000000000354650dab54e0a0000000000000000000000000000000000000000000000000000000064ef3548000000000000000000000000000000000000000000000000000000000000002bfa6a407c4c49ea1d46569c1a4bcf71c3437be54c0007d0551197e6350936976dffb66b2c3bb15ddb72325000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a06e824a423c3a004149d9ee25715193b1d8f45ffab32eb2d17cccf96e124193c8a06fcba743571e103c2c8a28b9fd556dacd3fc0e4500e33ded57373e02afdf2c6a0000008ef88c0e850ba43b74008302268d94bf57ef344114bb5d443d916700c7bcefb6750e1580a4a3908e1b0000000000000000000000000000000000000000000000104e82fb07aa1c6a3f83104ec2a041b3310e9357d96c41758143fe3974b7bc96441ec8aacc624a0a9f1ea4e7fb47a02b93afa3079b9c9855a75e6ca412462d97c276cda894fa67c1457de73227ef74000002b1f902ae2f850ba43b74008303e5bf9417afd0263d6909ba1f9a8eac697f76532365fb9580b902445ae401dc0000000000000000000000000000000000000000000000000000000064ef342f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000d9692f1748afee00face2da35242417dd05a8615000000000000000000000000530000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000000052eea1a256ffecb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004449404b7c000000000000000000000000000000000000000000000000052eea1a256ffecb000000000000000000000000ece5858ff6ac4bae6af42b483e84f9655a23b6520000000000000000000000000000000000000000000000000000000083104ec1a0df147078e16e74ee99ece68564a5d64c14e4ba1be4282629b75ba36b1c58dce2a028e08adb28d7c080e92f3cf6e66cd048a8e2077a758e3541dea510467c76da1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480c07000000000005204e0000000064ef3315000000000000000000000000000000000000000000000000000000000000000000000000007a120000040000000000000005204f0000000064ef3318000000000000000000000000000000000000000000000000000000000000000000000000007a12000007000000000000000520500000000064ef331b000000000000000000000000000000000000000000000000000000000000000000000000007a12000001000000000000000520510000000064ef331e000000000000000000000000000000000000000000000000000000000000000000000000007a12000003000000000000000520520000000064ef3321000000000000000000000000000000000000000000000000000000000000000000000000007a12000004000000000000000520530000000064ef3324000000000000000000000000000000000000000000000000000000000000000000000000007a12000002000000000000000520540000000064ef3327000000000000000000000000000000000000000000000000000000000000000000000000007a120000040000000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8706651728988000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b4000000000000000000000000000000000000000000000000000665172898800000000000000000000000000000000000000000000000000007c95de56a6a00dd0000000000000000000000000000000000000000000000000006133c6690e0000000000000000000000000000000000000000000000000000765b2cd2517e700000000000000000000000000e12f8341db316d99708a7645dbadcc8fe6dd7bb10000000000000000000000000000000000000000000000000000000064ef368f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a08bb3d5695fdba073187359f73a43d289767f90f05cddbdfcde556c144d26432da03fdb51048bd31f3540efc7067dff6b06161f68108d8e52a260f0ee7f53f2756c00000072f870821bce850ba43b74008261a894987e8b40b8f3154063bad183cf246099111f98ad87470de4df8200008083104ec1a084c12c57b6008779035924280a521e8262e0d519381b47525fd137ed77074b2ca043d422894d159a51675060c35a284cbde41fa4c030912900dd683208873e1b6f00002653f9265002850ba43b7400831a3ea08080b925fa60806040523480156200001157600080fd5b506040516200251a3803806200251a8339818101604052810190620000379190620004ad565b828281600390816200004a919062000788565b5080600490816200005c919062000788565b5050506200007f620000736200009a60201b60201c565b620000a260201b60201c565b6200009133826200016860201b60201c565b5050506200098a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001d190620008d0565b60405180910390fd5b620001ee60008383620002d560201b60201c565b806002600082825462000202919062000921565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002b591906200096d565b60405180910390a3620002d160008383620002da60201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034882620002fd565b810181811067ffffffffffffffff821117156200036a57620003696200030e565b5b80604052505050565b60006200037f620002df565b90506200038d82826200033d565b919050565b600067ffffffffffffffff821115620003b057620003af6200030e565b5b620003bb82620002fd565b9050602081019050919050565b60005b83811015620003e8578082015181840152602081019050620003cb565b60008484015250505050565b60006200040b620004058462000392565b62000373565b9050828152602081018484840111156200042a5762000429620002f8565b5b62000437848285620003c8565b509392505050565b600082601f830112620004575762000456620002f3565b5b815162000469848260208601620003f4565b91505092915050565b6000819050919050565b620004878162000472565b81146200049357600080fd5b50565b600081519050620004a7816200047c565b92915050565b600080600060608486031215620004c957620004c8620002e9565b5b600084015167ffffffffffffffff811115620004ea57620004e9620002ee565b5b620004f8868287016200043f565b935050602084015167ffffffffffffffff8111156200051c576200051b620002ee565b5b6200052a868287016200043f565b92505060406200053d8682870162000496565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200059a57607f821691505b602082108103620005b057620005af62000552565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200061a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005db565b620006268683620005db565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000669620006636200065d8462000472565b6200063e565b62000472565b9050919050565b6000819050919050565b620006858362000648565b6200069d620006948262000670565b848454620005e8565b825550505050565b600090565b620006b4620006a5565b620006c18184846200067a565b505050565b5b81811015620006e957620006dd600082620006aa565b600181019050620006c7565b5050565b601f82111562000738576200070281620005b6565b6200070d84620005cb565b810160208510156200071d578190505b620007356200072c85620005cb565b830182620006c6565b50505b505050565b600082821c905092915050565b60006200075d600019846008026200073d565b1980831691505092915050565b60006200077883836200074a565b9150826002028217905092915050565b620007938262000547565b67ffffffffffffffff811115620007af57620007ae6200030e565b5b620007bb825462000581565b620007c8828285620006ed565b600060209050601f831160018114620008005760008415620007eb578287015190505b620007f785826200076a565b86555062000867565b601f1984166200081086620005b6565b60005b828110156200083a5784890151825560018201915060208501945060208101905062000813565b868310156200085a578489015162000856601f8916826200074a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620008b8601f836200086f565b9150620008c58262000880565b602082019050919050565b60006020820190508181036000830152620008eb81620008a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200092e8262000472565b91506200093b8362000472565b9250828201905080821115620009565762000955620008f2565b5b92915050565b620009678162000472565b82525050565b60006020820190506200098460008301846200095c565b92915050565b611b80806200099a6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102a6578063a457c2d7146102c4578063a9059cbb146102f4578063dd62ed3e14610324578063f2fde38b146103545761010b565b806370a0823114610232578063715018a61461026257806379cc67901461026c5780638da5cb5b146102885761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806340c10f19146101fa57806342966c68146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610370565b6040516101259190611178565b60405180910390f35b61014860048036038101906101439190611233565b610402565b604051610155919061128e565b60405180910390f35b610166610425565b60405161017391906112b8565b60405180910390f35b610196600480360381019061019191906112d3565b61042f565b6040516101a3919061128e565b60405180910390f35b6101b461045e565b6040516101c19190611342565b60405180910390f35b6101e460048036038101906101df9190611233565b610467565b6040516101f1919061128e565b60405180910390f35b610214600480360381019061020f9190611233565b61049e565b005b610230600480360381019061022b919061135d565b6104b4565b005b61024c6004803603810190610247919061138a565b6104c8565b60405161025991906112b8565b60405180910390f35b61026a610510565b005b61028660048036038101906102819190611233565b610524565b005b610290610544565b60405161029d91906113c6565b60405180910390f35b6102ae61056e565b6040516102bb9190611178565b60405180910390f35b6102de60048036038101906102d99190611233565b610600565b6040516102eb919061128e565b60405180910390f35b61030e60048036038101906103099190611233565b610677565b60405161031b919061128e565b60405180910390f35b61033e600480360381019061033991906113e1565b61069a565b60405161034b91906112b8565b60405180910390f35b61036e6004803603810190610369919061138a565b610721565b005b60606003805461037f90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab90611450565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b5050505050905090565b60008061040d6107a4565b905061041a8185856107ac565b600191505092915050565b6000600254905090565b60008061043a6107a4565b9050610447858285610975565b610452858585610a01565b60019150509392505050565b60006012905090565b6000806104726107a4565b9050610493818585610484858961069a565b61048e91906114b0565b6107ac565b600191505092915050565b6104a6610c77565b6104b08282610cf5565b5050565b6104c56104bf6107a4565b82610e4b565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610518610c77565b6105226000611018565b565b610536826105306107a4565b83610975565b6105408282610e4b565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461057d90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990611450565b80156105f65780601f106105cb576101008083540402835291602001916105f6565b820191906000526020600020905b8154815290600101906020018083116105d957829003601f168201915b5050505050905090565b60008061060b6107a4565b90506000610619828661069a565b90508381101561065e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065590611556565b60405180910390fd5b61066b82868684036107ac565b60019250505092915050565b6000806106826107a4565b905061068f818585610a01565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610729610c77565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f906115e8565b60405180910390fd5b6107a181611018565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108129061167a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108819061170c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096891906112b8565b60405180910390a3505050565b6000610981848461069a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109fb57818110156109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e490611778565b60405180910390fd5b6109fa84848484036107ac565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061180a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad69061189c565b60405180910390fd5b610aea8383836110de565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b679061192e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5e91906112b8565b60405180910390a3610c718484846110e3565b50505050565b610c7f6107a4565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610544565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061199a565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b90611a06565b60405180910390fd5b610d70600083836110de565b8060026000828254610d8291906114b0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e3391906112b8565b60405180910390a3610e47600083836110e3565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190611a98565b60405180910390fd5b610ec6826000836110de565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390611b2a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fff91906112b8565b60405180910390a3611013836000846110e3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611122578082015181840152602081019050611107565b60008484015250505050565b6000601f19601f8301169050919050565b600061114a826110e8565b61115481856110f3565b9350611164818560208601611104565b61116d8161112e565b840191505092915050565b60006020820190508181036000830152611192818461113f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111ca8261119f565b9050919050565b6111da816111bf565b81146111e557600080fd5b50565b6000813590506111f7816111d1565b92915050565b6000819050919050565b611210816111fd565b811461121b57600080fd5b50565b60008135905061122d81611207565b92915050565b6000806040838503121561124a5761124961119a565b5b6000611258858286016111e8565b92505060206112698582860161121e565b9150509250929050565b60008115159050919050565b61128881611273565b82525050565b60006020820190506112a3600083018461127f565b92915050565b6112b2816111fd565b82525050565b60006020820190506112cd60008301846112a9565b92915050565b6000806000606084860312156112ec576112eb61119a565b5b60006112fa868287016111e8565b935050602061130b868287016111e8565b925050604061131c8682870161121e565b9150509250925092565b600060ff82169050919050565b61133c81611326565b82525050565b60006020820190506113576000830184611333565b92915050565b6000602082840312156113735761137261119a565b5b60006113818482850161121e565b91505092915050565b6000602082840312156113a05761139f61119a565b5b60006113ae848285016111e8565b91505092915050565b6113c0816111bf565b82525050565b60006020820190506113db60008301846113b7565b92915050565b600080604083850312156113f8576113f761119a565b5b6000611406858286016111e8565b9250506020611417858286016111e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061146857607f821691505b60208210810361147b5761147a611421565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114bb826111fd565b91506114c6836111fd565b92508282019050808211156114de576114dd611481565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006115406025836110f3565b915061154b826114e4565b604082019050919050565b6000602082019050818103600083015261156f81611533565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006115d26026836110f3565b91506115dd82611576565b604082019050919050565b60006020820190508181036000830152611601816115c5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006116646024836110f3565b915061166f82611608565b604082019050919050565b6000602082019050818103600083015261169381611657565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006116f66022836110f3565b91506117018261169a565b604082019050919050565b60006020820190508181036000830152611725816116e9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611762601d836110f3565b915061176d8261172c565b602082019050919050565b6000602082019050818103600083015261179181611755565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117f46025836110f3565b91506117ff82611798565b604082019050919050565b60006020820190508181036000830152611823816117e7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006118866023836110f3565b91506118918261182a565b604082019050919050565b600060208201905081810360008301526118b581611879565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006119186026836110f3565b9150611923826118bc565b604082019050919050565b600060208201905081810360008301526119478161190b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119846020836110f3565b915061198f8261194e565b602082019050919050565b600060208201905081810360008301526119b381611977565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006119f0601f836110f3565b91506119fb826119ba565b602082019050919050565b60006020820190508181036000830152611a1f816119e3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a826021836110f3565b9150611a8d82611a26565b604082019050919050565b60006020820190508181036000830152611ab181611a75565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b146022836110f3565b9150611b1f82611ab8565b604082019050919050565b60006020820190508181036000830152611b4381611b07565b905091905056fea26469706673582212204df6f0de305c90d5e7f095ff995f5884e7b51d307b600671a909171759701b0f64736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000032dcd5000000000000000000000000000000000000000000000000000000000000000334353300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002657200000000000000000000000000000000000000000000000000000000000083104ec1a0ef9b07ba67e287a828d91e16ce542fb65365de4367e64edc2b9e1dfbe87b54c4a07de5e57772ebf86498393e4bffb27d0a1e5de974959dbc76261ccd608c4591e100000070f86e04850ba43b740082520894efddd3d3917cbce15aa53082339a9414de8f785787038d7ea4c680008083104ec2a07866395c018b454de69a43642c76edf86b6719dc7811f74a59666d45e7f1f59ba0644f70e9edceeaa0ae38d30b30db8fe9b147056c2fe230f6dc280d709fa5fa0100000218f9021505850df84758008302e6989417afd0263d6909ba1f9a8eac697f76532365fb958738d7ea4c680000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef369400000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000c8e9dae10a06f48641d435be70136e84e392d6e40000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000003e4ac2d11f2b980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a0803cda4b7a4c4a1311d0333d4a8831bef88397a5c5bea3ac0c53f6b3d5ad8a88a0245a99131aa538568f9e2f65a4b9d84ba99fcd20e33ca28e065c9bc393e0ebed00000217f9021408850bdfd63e008304d7d69417afd0263d6909ba1f9a8eac697f76532365fb958648c273950000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef5a2100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a861500000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000260ca22885185b92bbcdac78dbb526b5ee6f6e7f000000000000000000000000000000000000000000000000000048c273950000000000000000000000000000000000000000000000000000004b1ec641c7a4d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a015ac787e00d5dc28d477a2279f4f623acd8ea0bbf909b59214f41297c57f9902a063e6daf976f1fff9ef8fa82ba633448e915337cb7a964ed6f766282033c6bb73000000aff8ad01850bdfd63e00830183ba94d9692f1748afee00face2da35242417dd05a861580b844095ea7b300000000000000000000000017afd0263d6909ba1f9a8eac697f76532365fb95ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec2a069b2f72ab0c7e0930e82001dcd3cd10fa02dfc1739024195849752b62492ba69a042af83af4633e499464be99ab7d83b8e368b14e01533418065b13e7ac7aa4ba400000218f9021502850ba43b74008302e7df9417afd0263d6909ba1f9a8eac697f76532365fb95870aa87bee538000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef342600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a861500000000000000000000000000000000000000000000000000000000000027100000000000000000000000006394291f504a027de81308cf411ca485d20f0f2c000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000cf86d74b50a154400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a003832c87c434733391c4fd769541d6244f298262513b6800db2046f8b7749e05a06ae97f77b2cc05c68ceb9e9eace91d33590634cff870efa2aed292768c0b27ed00000178f9017507850ba43b740083032ff594d4d96b390f222a83004fe4d62c2a8abea8fbacf887470de4df820000b9010457965bfbe8b8e4e78892ad8036fd5c1bb6e5724863927eba9dd8fed45ad935a11c57031c000000000000000000000000000000000000000000000000000000000000001c53c7c5bff4bc0d799259640bd32b07feff9fec740b40ee47f7599debfb2365a2624da2a598ea92daf6de286fb6edaf4ba29eed2a01bf81b17b66f44783b5526500000000000000000000000080c8ec9cb3a1bd7d059ed4e2f1fc8b440b2ea41100000000000000000000000000000000000000000000000000000000000012e90000000000000000000000000000000000000000000000000000018a3e2c5322000000000000000000000000000000000000000000000000000000000000000083104ec2a007e2dad46159bb250819855f0d2d62292e13ea7052433cc4244dbec6391de147a01c0002db57b18627f6231f62f074f76f05440aeab6ab6a03684b36880dec586c000001b9f901b60e850ba43b74008301e0698080b90160608060405234801561000f575f80fd5b506101438061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80632e64cec1146100385780636057361d14610056575b5f80fd5b610040610072565b60405161004d919061009b565b60405180910390f35b610070600480360381019061006b91906100e2565b61007a565b005b5f8054905090565b805f8190555050565b5f819050919050565b61009581610083565b82525050565b5f6020820190506100ae5f83018461008c565b92915050565b5f80fd5b6100c181610083565b81146100cb575f80fd5b50565b5f813590506100dc816100b8565b92915050565b5f602082840312156100f7576100f66100b4565b5b5f610104848285016100ce565b9150509291505056fea2646970667358221220bfa7ddc6d937b635c7a8ad020080923800f04f6b0a685c47330306fd5267626b64736f6c6343000815003383104ec2a0decac70665a915b8152ccda6b9cebc6e1940c1fa5971cdc9cd4f590f245ecf54a0027ee12cfa410e7ff9a2df73f59c2c97289f104d50f999ff64b5cf3fdb6e4c5e00000072f8708204b5850ba43b740082520894dfa1b4dbec3f65ad1b66f04b567180169d1d3f1987038d7ea4c680008083104ec1a0432353ae95f0bcd70294a88e034438f3788ff4df465000a446de6808bcbf01eaa0036ba1364c90bafed8b8da9b0a85f30300d934a5e26975d9c534ed89b66275ee000000b6f8b480850ba43b740083042452949ad3c5617ecaa556d6e166787a97081907171230872386f26fc10000b844c7cdea37000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000000000083104ec1a02fc3ff21c2050905317e69c0bd6ee19e1387779a4d93fcb6263e4cf7197738d2a03cf397b36dcc1c4f624153cee95fd296108668de3d32127d5a76021fb5834ce6000002d8f902d505850ba43b74008307a87194bbad0e891922a8a4a7e9c39d4cc0559117016fec87eea0824967b607b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b400000000000000000000000000000000000000000000000000eea0824967b607000000000000000000000000000000000000000000000001236efcbcbb33ff3200000000000000000000000000000000000000000000000000ee085ba52d10fa00000000000000000000000000000000000000000000000122b43c6e1c20d89d000000000000000000000000410da7b2848a134eeda65a43619690bf04c614270000000000000000000000000000000000000000000000000000000064ef343500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a03108249184a140fa1bfaa8aea2aecbaafc78bcf731b28c87713e2a848232f50fa0577b11fb4bce9f3691ce0c61227b5f6035e81a0ff83d8076aa9ab466b5c2edc4000000aef8ac09850ba43b740082dd4194ab541dce85dcb3f6222439ba3ff45578caef6de680b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec1a01efd0c52a1c9d648dbc1054bd15ec2efc2a0219bdf546338e1c2f00fcd89da0ba04e69577c08761ef31ad4ec0a422e53239e112496f8bd8a51e162f5ed0831dabb000002b3f902b0820f24850ba43b74008302e6fb94cbbc5da52ea2728279560dca8f4ec08d5f82998580b902446f888fa10000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000e051306f4437c2b57b58dc21323f7803252e0c69fae9bfad82f5ebfa8f7b8c728b9d27d4fc1a186c49e1490154d89b4d98fae8e51f2921f9af9204b1bd1b091356000000000000000000000000000000000000000000000000000000000000a433000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7363726f6c6c2d7365706f6c69610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000041a42e5a95501bdb2f5f0c265415cf778a29c718d3bca4f9ec40f4b34ef5c775c86bf5b9ebe270f901fc46be508476991640cf3467ef607f855ca91953e5f4a1411c0000000000000000000000000000000000000000000000000000000000000083104ec2a04d6e96dfe570d170fef87a9af9cc2820c6bfa9c734e99bc28a8a807d38b65e22a0729d5195281e57a2a5ed67f1391a571269db695767f18f4fdb311d598a235025000002d8f902d505850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec87060a24181e4000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b400000000000000000000000000000000000000000000000000060a24181e4000000000000000000000000000000000000000000000000000075a94073b788f580000000000000000000000000000000000000000000000000005bcd57d4ff00000000000000000000000000000000000000000000000000006fc7306dee5bb400000000000000000000000000ef12d05fbd8b1db345efc4e886df729d46f16580000000000000000000000000000000000000000000000000000000064ef369b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a08649003c39a9974445fec44f39f20dbda9163cc8e8b89985f3e875603c2e9003a0656ae59aea94024ddb9247f4dc548ca1a86028bf658a3be6de87063c8695b93500000072f870821bcf850ba43b74008261a8943ea63c82148709e18fa0b4cf9219be3a505f7b0787470de4df8200008083104ec2a005185f1dcdc2f4bbb138cf5e80c00bda7d8be0c9eafcd361368aaffa0235bbb0a04fb1c60f38a92e8b3467e0abdf6a9d3f5b1ec2752fd6320bfdf51126ba74e99200000110f9010d1c850ba43b74008303a7e994ce87dbc5176cf0e37cf54741faf30e3e489e179980b8a45f4b9bde00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f5dd3700000000000000000000000000000000000000000000000564d2d67b6fa38cfb0000000000000000000000009ef3c073fbb1c77a065b76e92ae9d0d2a28cb6db0000000000000000000000000000000000000000000000000000000064ef37c683104ec1a0d998736d603eb8f3e91d4fe0da7fa37fae0dc70a94d260b851d244ef61203b31a02b7cfc1558d91c65788606433638a42760d504029a339bbd86a4c0fb7203c891000000b6f8b406850ba43b740083040abc949ad3c5617ecaa556d6e166787a9708190717123087038d7ea4c68000b844c7cdea3700000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000000000000000000000000000000000000000000083104ec2a062d9d6ffda264bf77d99ef50152ba550b6fd2536af0fc552ac22a9bcb96415c4a06ca2c537937975e3b7078f19b60446408240eb2194aa005a74c7a8ba14ea72a1000000aef8ac06850cce41660082c0a594d9692f1748afee00face2da35242417dd05a861580b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec0000000000000000000000000000000000000000000000008ac7230489e8000083104ec1a01192c0a50136be8bfdedefc6483600ca3afde2fa26ebccb280fcd713831eb65aa058f9f9989f19d6587fe23cda4993c2b16a6a891c1a17504bf49f54ad0d5a246f000000aef8ac01850ba43b740082c0bd94d9692f1748afee00face2da35242417dd05a861580b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec000000000000000000000000000000000000000000000000d84fb9f010eb792d83104ec2a0fdfacce52d8f49969d09c352e982fe1632e93d0b671cccc0ce12beb64705cfb1a010930856a99a6f19c04f739269bdc5002fe6c2e8ccf0f9eb6c40f7945b977caf0000008ef88c56850ba43b74008301bd4194e62a60247d0b9c1d09193b0f60875bc49878f5df80a4e6be6c66000000000000000000000000000000000000000000000000000000000000060683104ec2a0f01de96d4e3ca9627fee0a7cc8b0dc32a3fc34f9ce18a604f69764e357932b79a00eb8872fe3ea56848a99402601c2a2e63a2bf1f226972d0f5c9a945cbc42bde0000000aef8ac02850ba43b740082c0bd94d9692f1748afee00face2da35242417dd05a861580b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fec0000000000000000000000000000000000000000000000001cd2c8b549df391a83104ec1a06a3cb09374612aa8369f55f77128f6ae5e5559dc254b2907fbad2a81c5d60e78a070b83836be3b80fd7fbf01be7d7c3a9b5be674c9e5d4935f9303829d534b2b56000000aef8ac4d850ba43b740082c0c994d9692f1748afee00face2da35242417dd05a861580b844095ea7b300000000000000000000000017afd0263d6909ba1f9a8eac697f76532365fb95000000000000000000000000000000000000000000000023b0e9e8cd3cfc2f7f83104ec1a0a6ab7185c8bd04969a5e204541254ae06ac853e15e0d6bda08909bd3b32cc311a064ac119b202322af9bc1ed6ff48390d5dcd165a682a4ebb3e278d893d774b8bf00000218f9021502850ba43b74008303082c9417afd0263d6909ba1f9a8eac697f76532365fb9587b1a2bc2ec50000b901a45ae401dc0000000000000000000000000000000000000000000000000000000064ef344100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e404e45aaf0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000009f68f1262052f00affbd64536425957370ab582a00000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000000000000000000000000000d811f194415963f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec1a05b787411d2dbb2e5ca09ca02f53c42d57db09568bb0dbde9f04f61d26718bbb4a06ee3025cdc87d205c66f2ca57c13d231a02bfadda51e106623f805ad4d693eef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004acf0600000000000520550000000064ef332a000000000000000000000000000000000000000000000000000000000000000000000000007a12000006000000000000000520560000000064ef332d000000000000000000000000000000000000000000000000000000000000000000000000007a12000007000000000000000520570000000064ef3330000000000000000000000000000000000000000000000000000000000000000000000000007a12000006000000000000000520580000000064ef3333000000000000000000000000000000000000000000000000000000000000000000000000007a12000003000000000000000520590000000064ef3336000000000000000000000000000000000000000000000000000000000000000000000000007a120000030000000000000005205a0000000064ef3339000000000000000000000000000000000000000000000000000000000000000000000000007a120000030000000000aef8ac3d850ba43b740082b4d394551197e6350936976dffb66b2c3bb15ddb72325080b844095ea7b300000000000000000000000067a1f4a939b477a6b7c5bf94d97e45de87e608ef0000000000000000000000000000000000000000000000056bc75e2d6310000083104ec1a03dc3d5f4ac8437002963f1104e3a7881f38239c470aa32a3bf91e043e5ff422da02731716eb68b4dd0ed851987409cb80c54004ba6f40a9ce258fcfa43f98690a7000000d2f8d001850ba43b740083022e778080b87b6066806015600039303360006000a2806000f350fe6000803560e01c60008114602e5760018114603a5760028114604657600381146052576101008114605e576063565b6338f6dae68283a16063565b63cc6c4d6c8283a16063565b630cb75d708283a16063565b63ac1946258283a16063565b308283a15b505083104ec2a0052f24b2f9860132102f9ef23d4dafe0215ae793ce3f18cca987bd6d9865dba9a05eb023c2c083a7d002f4933705175f533158271ce5232e4004935545e67144a4000000b1f8af820a47850ba43b74008301a0f6946f1da9076f36000d5f9decdebd52402b1410b2c580b844468021b70000000000000000000000004f7906ab12e10b6eae797f43ca6cacb3484b090f000000000000000000000000000000000000000000000000000000000000000083104ec2a043d80fcb79c4ecdaeabd3a741c66f1db613b77ebf52b2e51bcdb498beb9d4c4ea0782e9a8819d50a1b60ac836e1d455c2519dd1f7101e94d3fca40165333a0a506000002d9f902d624850ba43b74008307878a94bbad0e891922a8a4a7e9c39d4cc0559117016fec88013bcaa2a655f5d1b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000002710fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2766000000000000000000000000000000000000000000000000000000000000d89a0000000000000000000000000000000000000000000000000013bcaa2a655f5d10000000000000000000000000000000000000000000000018493fba64eefff11000000000000000000000000000000000000000000000000013b0148949e8ce2000000000000000000000000000000000000000000000001839afb3d7ad6764a000000000000000000000000547580a7a72fe75268a1315e601bddac5a9150af0000000000000000000000000000000000000000000000000000000064ef342000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec1a0e661dbf70421b5f33e347ed76cba4712db610ded1cd06abb637bcc7b36f98c00a0182e03191c02a26f9e0d0ba89b806d91ec1921d201ff49d318b493d10b9fede90000008ef88c10850ba43b7400830125ad9404dd9d9ac7c848705c2b2649b37b3c97d0560e7a80a4a0712d68000000000000000000000000000000000000000000000000000000000000000383104ec1a07e016df8a47a070b1093d60598a7e36f7687eb7b405e07428284ca3954440e46a06d9c5a30dc9aa0d96fc87e2e1f5690654b06ce56c4a150aa028fe058ba61c24400000074f8720a850ba43b740082ca90945300000000000000000000000000000000000004870177c70b58401984d0e30db083104ec2a0ff1f2edbea13a50b5780083a21887307ee110d69cb3dab36617fb8cde526813ea05d671d0afbe64e039b38ec13ea1d6163b2d5fa20408020c4b7cb1c5ad7696563000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8706c00a3912c000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000006c00a3912c00000000000000000000000000000000000000000000000000008380ec5d1494eb1000000000000000000000000000000000000000000000000000669a34fd1d00000000000000000000000000000000000000000000000000007cedad586d270c0000000000000000000000000a71f1d3d636a01f04d93b4a1a8f92f79a4b981a80000000000000000000000000000000000000000000000000000000064ef36a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a0ff07ac921dc77c82fd7246f1c816292261229323d700c01bc300f1ab20fe2bbda023c9199a93cd17a1964665dd0220e031c1a7762b94c9bd57ec1039be1c98a67d0000008ef88c55850ba43b74008301bd4194e62a60247d0b9c1d09193b0f60875bc49878f5df80a4e6be6c66000000000000000000000000000000000000000000000000000000000000060783104ec1a073278681a295301262dd89921c71ecddbb5200b10a84a1f80d5d2fd4d9fd76bda07f9d574a658b6a8be52c60c698411ce3a4983c31b0f8af6a4c5c553a48df94e9000000aef8ac09850ba43b740082b70594d9692f1748afee00face2da35242417dd05a861580b844095ea7b300000000000000000000000017afd0263d6909ba1f9a8eac697f76532365fb95000000000000000000000000000000000000000000000010e22cb541cab983a383104ec2a09da47185aff6697039533256d2da3ff359559053d2f60762f23de229a8d1e99ba0314ea3126bf2d3936733c2f407bbda398fbb089f55f303f0b78e36bf79d2cb8e000000b5f8b347850ba43b74008304577e949ad3c5617ecaa556d6e166787a97081907171230865af3107a4000b844c7cdea3700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000083104ec2a065ecae06efe1ec8e3ac9cc4b2a4d83847b1dd6975dfc773809e63b7f4090b396a0335994653697a08c381366194d44d9f423a52912d5da52e3b5cb8d88a1748ae7000002d9f902d630850ba43b7400830757cb94bbad0e891922a8a4a7e9c39d4cc0559117016fec880220a34f4a92aca2b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000002710fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2766000000000000000000000000000000000000000000000000000000000000d89a00000000000000000000000000000000000000000000000000220a34f4a92aca20000000000000000000000000000000000000000000000029cb1ff19496af921000000000000000000000000000000000000000000000000021f480b0ce802b50000000000000000000000000000000000000000000000029b057ec4cf350080000000000000000000000000ece5858ff6ac4bae6af42b483e84f9655a23b6520000000000000000000000000000000000000000000000000000000064ef345000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a08627805b0d3303254b25b282126b29fb1b6db57655bda5d1dd35e2c4390bb785a0640fecb2878a330d5dcf372e5aa0c4cca4355f23cf313d0eeddd3cd172739b5c00000074f87215850ba43b740082ca909453000000000000000000000000000000000000048711c37937e0800084d0e30db083104ec1a0e483fe2f6955c8ef3d9944023d0871dab877b9d8ecaf296514b0612ff7229981a016ee3bee10447cf6159934a0d93393bbdbddeac7fe16ec6635c035237f2371aa00000350f9034d05840ee6b280835e949d94bbad0e891922a8a4a7e9c39d4cc0559117016fec80b902e4ac9650d80000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000008413ead5620000000000000000000000005300000000000000000000000000000000000004000000000000000000000000cae23aaa6ee04b3b70c2da30b75b3af912543a9e000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000003e7ffd4aefcd2cf2c91f36b6a74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000cae23aaa6ee04b3b70c2da30b75b3af912543a9e000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000214080000000000000000000000000000000000000000000000000000000000021b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013e9c16bcaa9c9fff40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013e9c16bcaa9c9fff40000000000000000000000005890aa503f0142f36ac0e51373a7111a626710aa0000000000000000000000000000000000000000000000000000000064ef34380000000000000000000000000000000000000000000000000000000083104ec2a0e152f9532ca16ce32f2c63ef3ffdbfaf06efe10b95c1977f648ac62ccf0a4b17a06c97934443c7318a5cf85d30ade2030d25ede2bf46b0e17d882df33fb7c5efeb000002d8f902d507850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8706c00a3912c000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000006c00a3912c0000000000000000000000000000000000000000000000000000837e5911784eeb1000000000000000000000000000000000000000000000000000669a34fd1d00000000000000000000000000000000000000000000000000007ceb3b03cbe48c0000000000000000000000000c8e9dae10a06f48641d435be70136e84e392d6e40000000000000000000000000000000000000000000000000000000064ef36ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a076d5753b4d8d3c771674b9d27e5e065ea357d3fe8dd3f1baf6e73f24aea1cdf6a0189ef18fa5e11809d67bbc82b6f9a79cd89afe75b6d3e41ee8de5b817d4ed19c00000277f9027402850ba43b74008302fd0c9417afd0263d6909ba1f9a8eac697f76532365fb95877217e846ef4161b902045ae401dc0000000000000000000000000000000000000000000000000000000064ef3447000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e45023b4df0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000003b01fd884b6bf6da722b7d96df7e13c75fe3b6790000000000000000000000000000000000000000000000008ac7230489e80000000000000000000000000000000000000000000000000000007217e846ef4161000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec29ff03eed2a54611edc62815461b96f7f9314043b03e95bd9f230fba7457771f6a04f40df29b070fed2950fc6546208799e7bbb18b7895b54a7894aa73a0cb0aa74000000aef8ac0a850ba43b7400827ff994ab541dce85dcb3f6222439ba3ff45578caef6de680b844095ea7b3000000000000000000000000bbad0e891922a8a4a7e9c39d4cc0559117016fecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83104ec2a057b4bda72f5981d24ac90f52b5f7eeb9157f00e71880603904b4d062c352f27aa05d0158bd8b0efda60213353b91113ccf1fe27610238e95693a3dbb59aa492d22000000aff8ad08850ba43b740083012f909480c8ec9cb3a1bd7d059ed4e2f1fc8b440b2ea41180b844a22cb465000000000000000000000000d4d96b390f222a83004fe4d62c2a8abea8fbacf8000000000000000000000000000000000000000000000000000000000000000183104ec2a0b5fe9634078e11b9e2820f60283c371ff6b611d6894a706d34da9a1761746d4ca04c9187eac530de470b8d0043de7af664be3bbf14c6c6d5d83cde65ed48582c990000006df86b03850ba43b74008266c0944ed8bb0cd040e7bb9fed7e0939fdc592811b2a7d8084d09de08a83104ec2a01534e2268a1e4cf3906486699455de3b02520a89a90a2fc248acc6db40a25ecea0236d7da199585a02209517bbdc1570731fd8776c220f28b93cb5d9a42ceda4210000008ef88c58850ba43b74008301bd4194e62a60247d0b9c1d09193b0f60875bc49878f5df80a4e6be6c66000000000000000000000000000000000000000000000000000000000000060883104ec2a0bd965d6ccf52730056f6611634064cdafb07b496c933e10ee8d1da0acde3b60fa0730f48a38418a668b4e9286905f2bf703f3af7e03b0a3912610ea53d5870b17c00002653f9265002850ba43b7400831a3eb88080b925fa60806040523480156200001157600080fd5b506040516200251a3803806200251a8339818101604052810190620000379190620004ad565b828281600390816200004a919062000788565b5080600490816200005c919062000788565b5050506200007f620000736200009a60201b60201c565b620000a260201b60201c565b6200009133826200016860201b60201c565b5050506200098a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001d190620008d0565b60405180910390fd5b620001ee60008383620002d560201b60201c565b806002600082825462000202919062000921565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002b591906200096d565b60405180910390a3620002d160008383620002da60201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034882620002fd565b810181811067ffffffffffffffff821117156200036a57620003696200030e565b5b80604052505050565b60006200037f620002df565b90506200038d82826200033d565b919050565b600067ffffffffffffffff821115620003b057620003af6200030e565b5b620003bb82620002fd565b9050602081019050919050565b60005b83811015620003e8578082015181840152602081019050620003cb565b60008484015250505050565b60006200040b620004058462000392565b62000373565b9050828152602081018484840111156200042a5762000429620002f8565b5b62000437848285620003c8565b509392505050565b600082601f830112620004575762000456620002f3565b5b815162000469848260208601620003f4565b91505092915050565b6000819050919050565b620004878162000472565b81146200049357600080fd5b50565b600081519050620004a7816200047c565b92915050565b600080600060608486031215620004c957620004c8620002e9565b5b600084015167ffffffffffffffff811115620004ea57620004e9620002ee565b5b620004f8868287016200043f565b935050602084015167ffffffffffffffff8111156200051c576200051b620002ee565b5b6200052a868287016200043f565b92505060406200053d8682870162000496565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200059a57607f821691505b602082108103620005b057620005af62000552565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200061a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005db565b620006268683620005db565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000669620006636200065d8462000472565b6200063e565b62000472565b9050919050565b6000819050919050565b620006858362000648565b6200069d620006948262000670565b848454620005e8565b825550505050565b600090565b620006b4620006a5565b620006c18184846200067a565b505050565b5b81811015620006e957620006dd600082620006aa565b600181019050620006c7565b5050565b601f82111562000738576200070281620005b6565b6200070d84620005cb565b810160208510156200071d578190505b620007356200072c85620005cb565b830182620006c6565b50505b505050565b600082821c905092915050565b60006200075d600019846008026200073d565b1980831691505092915050565b60006200077883836200074a565b9150826002028217905092915050565b620007938262000547565b67ffffffffffffffff811115620007af57620007ae6200030e565b5b620007bb825462000581565b620007c8828285620006ed565b600060209050601f831160018114620008005760008415620007eb578287015190505b620007f785826200076a565b86555062000867565b601f1984166200081086620005b6565b60005b828110156200083a5784890151825560018201915060208501945060208101905062000813565b868310156200085a578489015162000856601f8916826200074a565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620008b8601f836200086f565b9150620008c58262000880565b602082019050919050565b60006020820190508181036000830152620008eb81620008a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200092e8262000472565b91506200093b8362000472565b9250828201905080821115620009565762000955620008f2565b5b92915050565b620009678162000472565b82525050565b60006020820190506200098460008301846200095c565b92915050565b611b80806200099a6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102a6578063a457c2d7146102c4578063a9059cbb146102f4578063dd62ed3e14610324578063f2fde38b146103545761010b565b806370a0823114610232578063715018a61461026257806379cc67901461026c5780638da5cb5b146102885761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806340c10f19146101fa57806342966c68146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610370565b6040516101259190611178565b60405180910390f35b61014860048036038101906101439190611233565b610402565b604051610155919061128e565b60405180910390f35b610166610425565b60405161017391906112b8565b60405180910390f35b610196600480360381019061019191906112d3565b61042f565b6040516101a3919061128e565b60405180910390f35b6101b461045e565b6040516101c19190611342565b60405180910390f35b6101e460048036038101906101df9190611233565b610467565b6040516101f1919061128e565b60405180910390f35b610214600480360381019061020f9190611233565b61049e565b005b610230600480360381019061022b919061135d565b6104b4565b005b61024c6004803603810190610247919061138a565b6104c8565b60405161025991906112b8565b60405180910390f35b61026a610510565b005b61028660048036038101906102819190611233565b610524565b005b610290610544565b60405161029d91906113c6565b60405180910390f35b6102ae61056e565b6040516102bb9190611178565b60405180910390f35b6102de60048036038101906102d99190611233565b610600565b6040516102eb919061128e565b60405180910390f35b61030e60048036038101906103099190611233565b610677565b60405161031b919061128e565b60405180910390f35b61033e600480360381019061033991906113e1565b61069a565b60405161034b91906112b8565b60405180910390f35b61036e6004803603810190610369919061138a565b610721565b005b60606003805461037f90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab90611450565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b5050505050905090565b60008061040d6107a4565b905061041a8185856107ac565b600191505092915050565b6000600254905090565b60008061043a6107a4565b9050610447858285610975565b610452858585610a01565b60019150509392505050565b60006012905090565b6000806104726107a4565b9050610493818585610484858961069a565b61048e91906114b0565b6107ac565b600191505092915050565b6104a6610c77565b6104b08282610cf5565b5050565b6104c56104bf6107a4565b82610e4b565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610518610c77565b6105226000611018565b565b610536826105306107a4565b83610975565b6105408282610e4b565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461057d90611450565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990611450565b80156105f65780601f106105cb576101008083540402835291602001916105f6565b820191906000526020600020905b8154815290600101906020018083116105d957829003601f168201915b5050505050905090565b60008061060b6107a4565b90506000610619828661069a565b90508381101561065e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065590611556565b60405180910390fd5b61066b82868684036107ac565b60019250505092915050565b6000806106826107a4565b905061068f818585610a01565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610729610c77565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f906115e8565b60405180910390fd5b6107a181611018565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108129061167a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361088a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108819061170c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161096891906112b8565b60405180910390a3505050565b6000610981848461069a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109fb57818110156109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e490611778565b60405180910390fd5b6109fa84848484036107ac565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061180a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad69061189c565b60405180910390fd5b610aea8383836110de565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b679061192e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5e91906112b8565b60405180910390a3610c718484846110e3565b50505050565b610c7f6107a4565b73ffffffffffffffffffffffffffffffffffffffff16610c9d610544565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea9061199a565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b90611a06565b60405180910390fd5b610d70600083836110de565b8060026000828254610d8291906114b0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e3391906112b8565b60405180910390a3610e47600083836110e3565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190611a98565b60405180910390fd5b610ec6826000836110de565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390611b2a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fff91906112b8565b60405180910390a3611013836000846110e3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611122578082015181840152602081019050611107565b60008484015250505050565b6000601f19601f8301169050919050565b600061114a826110e8565b61115481856110f3565b9350611164818560208601611104565b61116d8161112e565b840191505092915050565b60006020820190508181036000830152611192818461113f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111ca8261119f565b9050919050565b6111da816111bf565b81146111e557600080fd5b50565b6000813590506111f7816111d1565b92915050565b6000819050919050565b611210816111fd565b811461121b57600080fd5b50565b60008135905061122d81611207565b92915050565b6000806040838503121561124a5761124961119a565b5b6000611258858286016111e8565b92505060206112698582860161121e565b9150509250929050565b60008115159050919050565b61128881611273565b82525050565b60006020820190506112a3600083018461127f565b92915050565b6112b2816111fd565b82525050565b60006020820190506112cd60008301846112a9565b92915050565b6000806000606084860312156112ec576112eb61119a565b5b60006112fa868287016111e8565b935050602061130b868287016111e8565b925050604061131c8682870161121e565b9150509250925092565b600060ff82169050919050565b61133c81611326565b82525050565b60006020820190506113576000830184611333565b92915050565b6000602082840312156113735761137261119a565b5b60006113818482850161121e565b91505092915050565b6000602082840312156113a05761139f61119a565b5b60006113ae848285016111e8565b91505092915050565b6113c0816111bf565b82525050565b60006020820190506113db60008301846113b7565b92915050565b600080604083850312156113f8576113f761119a565b5b6000611406858286016111e8565b9250506020611417858286016111e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061146857607f821691505b60208210810361147b5761147a611421565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114bb826111fd565b91506114c6836111fd565b92508282019050808211156114de576114dd611481565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006115406025836110f3565b915061154b826114e4565b604082019050919050565b6000602082019050818103600083015261156f81611533565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006115d26026836110f3565b91506115dd82611576565b604082019050919050565b60006020820190508181036000830152611601816115c5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006116646024836110f3565b915061166f82611608565b604082019050919050565b6000602082019050818103600083015261169381611657565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006116f66022836110f3565b91506117018261169a565b604082019050919050565b60006020820190508181036000830152611725816116e9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611762601d836110f3565b915061176d8261172c565b602082019050919050565b6000602082019050818103600083015261179181611755565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006117f46025836110f3565b91506117ff82611798565b604082019050919050565b60006020820190508181036000830152611823816117e7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006118866023836110f3565b91506118918261182a565b604082019050919050565b600060208201905081810360008301526118b581611879565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006119186026836110f3565b9150611923826118bc565b604082019050919050565b600060208201905081810360008301526119478161190b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006119846020836110f3565b915061198f8261194e565b602082019050919050565b600060208201905081810360008301526119b381611977565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006119f0601f836110f3565b91506119fb826119ba565b602082019050919050565b60006020820190508181036000830152611a1f816119e3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a826021836110f3565b9150611a8d82611a26565b604082019050919050565b60006020820190508181036000830152611ab181611a75565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b146022836110f3565b9150611b1f82611ab8565b604082019050919050565b60006020820190508181036000830152611b4381611b07565b905091905056fea26469706673582212204df6f0de305c90d5e7f095ff995f5884e7b51d307b600671a909171759701b0f64736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000087a23000000000000000000000000000000000000000000000000000000000000000435747936000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003747467000000000000000000000000000000000000000000000000000000000083104ec2a0b033b0e90cb66dd5ef2952003edecac053f9e763d78f0e2c2f0282ac98384b2ea04c651be2ab4d969952a5ee6b40f83d62f4d88e10450a0bc57f454a370f89178000000072f870821bd0850ba43b74008261a894ad395b804c8e91a4e6d59215e2f12419e959e1ae87470de4df8200008083104ec1a01f7fcfdbe5e79761fd30e476f458489dedb4e1e121f9590eefbce003be151b10a074bc8a43e91037cd3ac177c59d2eb43778befb6a66b36bbcaa0cbabb00ce136b00000075f8730285012a05f20082c2c094530000000000000000000000000000000000000488063eb89da4ed000084d0e30db083104ec2a08ce3f2e5fd234afeed447beb4bfd0777fc621ed7f07cb49d826e1fa54fd6d531a03bdd815558f8e2abe459fb971ecf58bb8f0e03fe8992c68426cb7f82d7191ff3000000b6f8b404850ba43b74008304577e949ad3c5617ecaa556d6e166787a97081907171230872386f26fc10000b844c7cdea37000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000000000083104ec2a0b02f8cced42dea51d6c4d95d9c851043cb61acc59652b125dab5c15b0c746baea00fb81dce565097ace45192525ee0a7568eca20431f30fa56753eea27ec9ae5e10000008ef88c55850ba43b74008301bd4194e62a60247d0b9c1d09193b0f60875bc49878f5df80a4e6be6c66000000000000000000000000000000000000000000000000000000000000060983104ec2a0c110ebd798580d7864c4693613d2e7fb38626b189c600c36f83db9a6dda47b2ea04abfdacd85dc5f43e113b741fe6f78ea6a94b21da8065226bbb6a2fa9bb927450000008df88b0b850ba43b740082a72794530000000000000000000000000000000000000480a42e1a7d4d000000000000000000000000000000000000000000000000000177c70b58401983104ec2a0ed05668033a74eb9b07285e0a8540c54b01fd3fa119e4cb193a6f854c80d9a85a0413818156a39ca5bcd5bc764f22b06588b900c179f9ef6ffef7f28eff72df1a1000002d8f902d506850df84758008308ac0e94bbad0e891922a8a4a7e9c39d4cc0559117016fec8705af3107a40000b90264ac9650d800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000164883164560000000000000000000000005300000000000000000000000000000000000004000000000000000000000000d9692f1748afee00face2da35242417dd05a86150000000000000000000000000000000000000000000000000000000000000bb8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c00000000000000000000000000000000000000000000000000000000000d89b40000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000006eb9daf6c6714520000000000000000000000000000000000000000000000000005666e940f00000000000000000000000000000000000000000000000000000693090040952000000000000000000000000000654aa3dde9580487fc65b063c397d4999dc4ae010000000000000000000000000000000000000000000000000000000064ef36b400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412210e8a0000000000000000000000000000000000000000000000000000000083104ec2a0252b5b29d8e2b3b3ffd69499d07d9ee16d13d0b8fbb60007bf526109b25c97aba0738b9a530befc131d24c8e6d2e8596e26258b6424c1d5325bfab8d793aa714ea000001c9f901c609850ba43b74008301eb058080b90170608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea2646970667358221220322c78243e61b783558509c9cc22cb8493dde6925aa5e89a08cdf6e22f279ef164736f6c6343000812003383104ec2a0e7a4a53f728b313e99f65e09c3506537baf7fa8c34dec301f1fe3609a26c93aaa043be096ddd804c6cc54937a3292a232e7eabb9571eb05f7cc04bef34aaa9ec2200000231f9022e10850ba43b740083065ce494d32548ea5911a6336c5a34061e814148c396ae6f80b901c43e5d877b00000000000000000000000000000000000000000000000000000001fdc1b5cb0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000b0a9d798f7c8028b0e467b913a02b547d0528c4a000000000000000000000000000000000000000000000000000000000000f88c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000041bbd932f6795a087a941c37cfd91fa2d61b9a720e657761768de55ad81f008e1426d69cd55a0a85e5c7d375e523e2924fbaf3a58631966802fe0410706e54b2431b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083104ec2a06e0c2d9af4a883d92a15584fcbfc9840b98cae58c2d7e22a271de8bfeaaa8fa0a042ff5570cee0c385a236380fbb31d53abcf4cdf3a10f624348b8fb4912ec135000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +} \ No newline at end of file diff --git a/rollup/rollup_sync_service/testdata/commit_batch_tx.rlp b/rollup/rollup_sync_service/testdata/commit_batch_tx.rlp new file mode 100644 index 0000000000000000000000000000000000000000..e0b42dc0a5815a67dbf48d3d7d6d6c55b368ba24 GIT binary patch literal 88636 zcmd>n2Ut@}({KvCgH&k|dj|w*(gj68Lyd^#EKN}a1-l|CG<#4KyRl)v_Flnq?Y&p* zy;p4fv*#osfsnxUeZTL1&!2lu_Uvq#nVp@Po!ztSq4#lTe5d#6Bv{*d6+gc_Up<09 zxRJn;wWYXy?8LLFi`PBgc*fN3*0^5n_0yh-xO?bvM;bL>FQWa~hpW6gT?IH!q`Uwv zP7KezC|6Lov%}zFE?!k5`Z?13Is48SOT16vrni1kyhF{Ue>Q9K*{1_|MA^Qfe{Wsb z_eiitMZuu~E;?yh+vCPnJ-!go_-vC$o^tKg`M|6bLIDWn@D*I;@Nz;qeEEA#vVi{6 z*7!GB=dVS|D~O?U=WuBf-s?YYBd#l|cU=kD`cK=6>n{HXb=!&Sme#wjy11nN)Ar)J zYwBIM8s`q;y6fv*x0+WS#dSBY0`583Ov&xdNl(6#{j=e#NKu^;_9tStfsM ztp3RvJr7MAz@L}L-L0;+!|}4Sinjff!BnG-+tF- z)Vy|ojaAyddg&9Ta2lPZ94?i76~*cV8)PMBW~8OH&q^Mak(P?;EcZ_V6{`4i{>I|_ zmyh)bod2}{Df*t0^|r(8jyFvlr15x6+3UW?%G8v0tX}$5DV#=UDTn{-`S+*tt%7`& z^sC~ZzoSlO@%?@p-*xgzw8!t%zuIYyCQE+_{nYOdV?G-_JLBBEOMks1+wTQFJrdj7 z@b83&eTjw3I^MtRyFt@!+n4US%WYI)s2ncQW_6WPiNCPN$RSTA_tV?ac!H*0#lFCo zKQym6IPhj&wQh9hTJ!yhk>4-m%H)7x!$t-<5`YrMG30# z7Z~*{7x7-CR=v3IadqXvlT-KQy15En9zMUf@W6v<6E>~fZ#-;^h{>7K-ff&6|CihP z@NBOI>gr+Rw@(^Qf8J!F_3{O;U4c3VyOI&k$n~0kk|r<=@GD;M+VA0>A#sAeOL`pp zWN@&3yCH%4+}-p?5q)m+>SBgCpOuj4=ZYaeiDKQ~A zrQC0YkH__wMu*NN`|mYMe_lTSU98rm%qLw=#ZHbJwBl0B=)mX8{qo<&kIcOLX72ob zm*ZCG>W!=lX`N0Nd@jlDqoRMCc8h-Z(OeY2F!_1Xms9R-XB@ZMG`DipndH;W*^7e> z+iCl7Kf9m!J=E&Zmv6(~{J5I5`SA45w7!4m{g_s=qN~P;#j4t`T65-dsKt&CP5P&d z_6cX+h-92&M18hOMU4~Nuk`*wJ)o4dm5CM?XAkl)>(OZ5{B?~zv)P4HEek9c3vb%?CMK4aG&vq3@>{rm zbitg;mOb}5ocHZnR1h~OZGF_G=)kNmi+jCa#z>*j#$2f!b5Vyh;}Q0WT<-2M6A_&t z{32brW(hQ!35TF@f5o#2zX&ejM~8eaq0NgVSoEC0jP$JJ^sKR2a(Gog@FLkzrMeoO zs-}uCs3u#h{+-FzVv13WimJv(K??ff5lkTu2>n$gOrV*@#Kr^CYB+~(D9vHB;n5lX zwMd{b!U>i&!Lo^shjff2P0$E!!W7YII=pBeQN^$_7YfYG7#6}9Ty+qkBS@ezp_+99 z&C=6CSR^D{Ky(%lP{2i|5W0NDMf}JjJZ=Qkp|gkz@{uckgdWM~U_vBm=_E8WMv51g z%y!JGQt&Y+4)GKNFjDXV3cGcJFI#BxinK``$Z3mtV}2T#0IoMYd*NpbTg(*ZT}jCV zn(cwuc!JhR$QI&XU=d9iEyP?BswwVR2;%{z#Eeu}hUBe6h&jpcx=2!7C1*;7=E5lR zIMYU5&)A<|@gdhLB&Wn-`OS?Fw^?QkN#az1RAIp?VhWeD*(4P#L4*-Z4W>T_zC7^2 zR!S%q0?U}0vGI5)djmu*1t2iw6D`Q`CTMglSkYpuKNTr}m0mewZ1BsE9 z8HEvKmn6_M7D%`|UV#itv&^CNQ7C;-QW{gBuFb&&XdNCaQZW0aSz-dzX@F>Bx(xo% zLMy@uT0KD`)_8~o464R`Nf&sIV6qg87GH5T6B-pY2(1!~R+cxa@1r?sF7#YR6r1BJ!-vo_CHcJ<`RmbeAiw8M(K16P? zesFw2YWb!?Ki#ISo!xfT`@|zl&0Br$6aKmB*0%x}A7JTt66Nz!8ka*}iI~Jr5)vt9 zE0qF?q%)$$DIPFMNw;tf^N(&~ur-1g7zgv45Zy#la9C;8?PRW69Kljl1Pm?*XbN^v9YfzlF`T}Ys5|BQ{#uO3gZTiP)2T0aya z4|(q>BwtZT%5W9xx#riRLOBY+X(5-O^P=foehe2>AVC*0g#-;eDVSnds*3P`n6dN- z%sHtMBs(UFq);G@9Kn(l`;YR7&5mcYXR&9I)(9vBrK%e&8CQ7jAizpT7i;7MnzgUQ zaDWm7U?>UHE2e;7Wq?2wP|Bl7t)7EWCp$2KruT@fVdFs65KmmC?BtsBv3l2e)(}0a za}U&_b)rwc1u?aN&E)xC$!n*Ss)U*(qwiznZ zH0HDJR+7*9Q54rkQ(UV{0SgpscqXvj5T>JUC750P-VzicR~w%9$~@12?i+02^oBs& zdNCj?a&0HqXnQ)QM{h#SV$P%A*eb-Je+=?|4i1uhD@8tC|S} zq}OAZN&4-!Eu~_#3>0u(#Ma?Xf(0`gOc85jjET)xOqSx@n#5K+y0wU{gW2^Z)@Xnt zVkNQ&?pPh|*9UL#Dj+ZR6fXr$Z@gl_B%IVpC{BY?SNI?R7 zC;o(5B+-nZ{fe(waR+H}Snf0UYT#be`Q|VNCjB@>4&S^8AYOrM>ny$j_2{P z&^FouOl!0j94h!34T#ctbSxE(ig7u3wkI7UQ*~VI9JFRKmTc`Nv}FS3mPaR8d1ON` zIDjT}WXgb&l`z{eSU|_^&cba;q?pgQspd5lZ$r?matSS{WvUY!Z^aeBm`cY2GJ~*( zXlfA~U&Q7U3z8F97@o%w2q5*NU#~fI80LXk7hypx+ z7ONQYnPRKC0f%5<{+e4shvvP2VZa=59il21qh;O!gW5v_7#9J-&;eUW3Z8j)4Cy9@ zh-(2;1xAS8Nnm77^vpFPbaRc&EpRiFIDEd2kS!nyG#B8i7)#tJBmqbGo|~JSOVA;A z431}jcF3jpVZH?y-z+Z9!}P~XXD?C3H<$7hirs)_@pLW17(D?2H9v@3gOH_}O0|Kf zq1h#Q1#Zzsra=ogJjtQ;nQT6v0c~~z)>6Ik`D(eQ0y7K9M1ZaZAx2j^VX9SyMK;v3 z7z8RI5{nU}r;D4RGU{*(eY0hj?@UiZJ@DnI*+`dFN z#|y}rW;qbV6qdEQbbwRy%d!WqkPA7~v;oZQt+1At9XHD&pa&}q=yMSd`nT*H8;?T~ zmK%9_1S_8oDNvB`y$8s&gb-OSmQ_jb6fQg-6O$SV1@7|zY0F&Mv6NavQsq-M#B&jX zmL_}%PT@hpEB5N_R)Ch}b27|p<$|01gqwu&{(y#+8kPiX7HU=du(_`a7&|~AK&?8_~caK>9 z8;41IBxvxs3~EXya^sCM^A6hKk{YP-N#J#h_p&{<@0@V$MoSVl5d#CFIwT}FJFVAx12 zXgdkS*B10LX$8d+S|3NpfVZ%)v z&bBNyMszO@H*v0Yv-8G?whNM1)YqSb4q^SAWe1jzzOuHckkgXB&~u2EmO7m`mQdHBpq z7Sy$n)Sb5SR6L+i1t6R>Me2tkIX!CeR7l>3WYL`spP;TWBxhe=;19`;kSsAC-UpK5 zl4dY{P{9{KV^0qhLNWxB6VD!?K{6SVxv{6>AUPW+H(8}aa*3pFz?`%}z?%~Q>RZxh zFC?dllcq=w;bhhGyO6|OK+ZAiAc?t zhGfqNXC^}OF(i9WxN8S>%^=y=YE55A21)96?)uow7%_|hgp*J~6Otb6SrL$I4oT18 z&8s0914-Y|)t->dgQQ=Xp%o-&NSe|3b(d+17~ufY?!Rg)B!@uK(p>)zBo{!k>8?zi z+zm;mE{_L7@;L`AKL`(E#2`&7aEcfSMMC7s!xNC)YyAk&JVK4znF;O!VsHWK=_SmUkDIpMZ1ZXkku6 z+Taw?;t_LAb}WOY5Wu=D0W5Tw6zm+*fkh0aj(Hnk@| zRbEXG=g8rs)=^qstqtx8&IKS{SoPxe)w)2Aw-)(;H-%wj)dp0T?;|Zgk;F_b73t0t z*Bpg=k{e^SdDS(Gal3#A(p@7i50R0YDqo89`@wY}BtqTk>P0{-e6@FSu_kHAb+a z#N{=#YW1yQg^bRNp)COF*Fv^04L4*23u&@$SAfdPnMMpUhSdjfLu0tKSB*4Dug0Wj z0=-VG-Rsio@(Xc!EOEv=#6A60yZnXf@~1HrbKB&Axcpt5BPVB?u=gm|JsLkH<1;6M!{q}7`P zd%9dfv>HPYSp?;Z00avudXY48DU64}CY)ZO(}e)%3XG9f3WqOb687d$jEb{}_XxR2 zYc8?@#Ux}St(CmIJY=&0Xp>t5N>2hn;iJ;R7xVae$ZiyHL+ef+)U#)Z>q)&ef;ub% zK9bf?)C7VL(mu8IB+Y2I$9-zs;1B#O{v!l+Z>$we%g&X_T3VjKGd7iY0{+p$&+E23#ela zM1?i5UyY9RG9`8^2wVaP{evV3n6N2O(C0mD4kEoGjyL#^KJW$SQsDyyyvg7ZpAH%V zFHzXoY1G>elQHOREcp6*5a+D7DC)fuqF{)H<9^9QY`{ysD%1kh6cDd(QRtXE3F(_i zW;#|Pu>LgVBK=6bX<3J4Db9v-F-U(n2kEC33JQ__KuM!`ULpMg{58I?fShJXKfjQl zODZbRa9H|g7h~%2^rO{rzO$|^L!^HZR&2;X19xzfbemO1sE~m=U>E!s#Ac--8)VQ2 z>!3QeK^2oMKgaN%7Ha$ovsN5<`p@hHB7@D8?lRa5gtjOo^_jsrJ~B8#&L07#{0(kk z&4!g2$wp+@g3$XTdXPhh+2Fq|Oq1(VZ!H&?OH9?czb3uleImqx53VwjM62N$K`Eab8g-to1RJmrzh{1vL zI$+}Y3~pzE8yD}8fO?H*=NKwQm`06A+COTRpM3A){M?$i@K=8t#-J)WC5udRu=d$Jkoxj#^41}7D_s) z{(PFk-W!c)icDs6{&3F2b{iA#T_ck|9ApxQx`C~c*|^4M-|BmM5}C}!k`k}|d!VP$FVyIB&Lcr<_3^)$SNex+@7Ab; z$GKk%Em<4JFA9s&Of_wOq0hZZlO_SqFt<^oo8-xH)ZK?{N5R2y)Czom>>szfKw3Xj zEgow16Lv;Tk!eT+ur>7qY|qJHi%g?sWHeye_rK^ZjC+_bOv>$tTAU~>EJUVfr;=1i_+a`-;&FsvC5@S* z;0Qf1*h~{9A#jA09y1GmK|z6-Gn48tc8ar2ky$|l=ro%sL_Mk_C=fX_n>l&%WKz&5 z?y2wt>Nr|situJ{y&WTSbwC4L;%bREw-g9a>pqwvlpKS4hl8ts;156;T`|iP=gK=1 z;7f?tGUgkR$5z1f&$J$&vb&_Nve4il3-wyMO1erBf`baSv-SmF)_^9hJ3y1A3YtXLJ>Up4vVky5 zT~o0R^~Xfk#T;Z^z(?)ggV0;gK<(jt6tezMcT07OpY>g6=>iB4+0qShOXR~-N$xwU zBk|d5WWylwo&a6i*diN)Tr#|mY%HjR0JSHhL*zV{JywluG8(`)n-n2pyDQ)uInBg# z4WzDmcp)i68~LLpi8v<9s-l&y=EDU$-7Lg=nD4sKqSMeG>n@X$~1aP&~${ z=^}DRS1}Y&{n!AN(DVh&z!!j?WCp^RHvNU1tTD#;%_i|HneulWHp?7H&V+MZG4FHL^&Xj9f&)Xblx0E>IGp1@I=UFW6HMY9C(=Pe;ji=`bk z8wO8KNfJj8!dsM($dkkM?j5Jktzkb#<&BPVd9@oq?SwT86x16nGVX$fSvxlLXk z$R~1|B@>*5AQI%^fHsebntOosac8o@9Y@V!r2}sj;}=NCrDXF64r

xs;413xfpD z6q0TfYCb|hdRb(!p*b&?+Ec1CyXDRLhq_y7NJHJNqNq@Jt5&r_ z-L0Zjg}PgHt{v)@-hhEx4JEWtCmmo54Ye9gPFf*5hwJ#vOYQpjw^7{LhA)gxtp$piXdLLb_JKvGi6C zAd**rIzfCL@AslsZ+XZi5Eum0mt9OMVvG*=4>yN^?X5$2p z`;x&t7=w1N$mg$;=l1@8_`)`7-$g*38*yC&jY1dgV`1a2eFU{thciLZC^W|Abu23J zJJP6qF+Od8Uy()~!@${SSPQ5_CU#Iz2WuQ7uj8DC;wI%|?#PChN5(?`_7}v& z908y<{5qZ%p9qavMlxC9J{M^(xqK$-SP7g2o8@>5<4Mqwqed?3+zf1|4ZKBY4Sp$| zm&-$rEDmzCM=`L-idTd8Ti|6zF~9==?ur1B0Ekco7y^L7iU7F)5GVpH0>DB=fE@tX zE(bu4*LeIqK==ZH&Wl0FO&uG3>ATW=MHiL8o6NbE$VmglGZyIQ=b9s@M(}`_g_0N~ za%xJRTt-d_4Om?`#X*y>01`|5FVF?ZDIHcnZm_qDoF>3#gAGJHWj7m;({ylY&$UYh{7 z#0gX%UQ;{a^PkdnuhTYMjt_VKAm`>BHn@@Yu=dSE&W)iIUb{+ArJjj|Qf@P)+j8~_H zFr);NbXZ+H@$e9I?8f4`4rd{;hvOFs52#Zawaw3I4~6h?I+*rMAvc#P%#~JaN`w z$V#QMm}bbe6r@NDf%)$ukS|;US#!jNk;}CPh>*)!5TVyHA_Ti=6izRp%@^|B{D!Pw zl5SiZa5WHebrquCakAYoscu|B|G7rUb>o^0SxM4vAVOB}ZF$#)&<&o(k_kbb5kjt8 z#cL-naxKRfU?7ivvGEWY>ue9J3fh11;tLpbau#xPg;-EK2Xo+kVWADY6wAdg|6)n? z6N3;CN`d?&AeI<3fdf0nWG(WQVO+~d3@YKkIW7`pB&nq(25sTMeGnu_O9E08gW$dZ zH43CA0WriNxJQaXffy1HT@3mOLP+M}wWN4|i3hK5*L0~PI>JP5 z(;6_&Zn;7fmn}2S$ZZ~sqfE5Ejv%z+$tv&0fvF&)_3ri!z{uTPi24}HU_?dh>xlZ) z2MsD(&mbf2Owb|txh}5O<&&wpagYqTyI%y;BoirEj@+MsUX{k&fhc%O0ek^IC_@?x zq!xLo@sJ02>$19okvOl6zYt+Un7ie1P?8pq$0Wi)G|WeD@3T$f7K{ z#|ki+;+tQPN1oW4l0ig|IUM9MyH*epW|u@pB@qtjM{n1WS%QNAZxSo6?v1k>>)4 zjCyvj_QPP@e&NBxUkXJ|=Eel%d7Y0uH{i-7*O2Ek=nkMNL zc^#rKtXcAwxa3YrNgx^YERmZ}V)z{}tdwHdMJpffSs^imkQiXt#Y&oiQT9V!+K?I5 zD6?l`?#bN7fx7hIp)M}9aPE>!VbaCF8WSmhyG(>SLu%KVC$2NHx(=`)7o*-~I|p^y zR*m}MTz(!MNe}~ml6Xl9KY+sbs|&v)3*(WH&UNI?fWZgJsKG&RTQLrm)i@yU4j@%f zRx(cBK0M^zl#~x|I5jCRRo?LcbgiykExlAqK-lNfO^|m!2YKfqZv@i92WgaZaJ`oU za2fJW!J-6jp2Hn7;D0j&bkIrO2LW~fc?18dHy2=#@i=qy3o*02fqw65`n}&3@+Z-e zH$Dr_xDT2-de zK<21fMCk*cZ}Rg7`Rc$5$_HL5!EBZ+{eY9OI1rCEOl4mff1kskz|?;18ZS;v+uQEcRpZkRL3hB`g+eB0n!` z;QTBk1Bd*?^B;7jUrf!p;0NRHC)EJR5A;8t_qZ&tR@qrlcBrIXQl3evK2$IX%d{V? z|NXX0=d|CEN&Lx_?wSMKWg)*SWCj*tEaZO3?};=63ps)OzLFV!aIy&tIT!hBQ5m_^ z2#Jutl{5n@3M|*~KV}d$zwi{RD4dMZ@rU>B{kuxh@sFC!pF*Jnj0JT3lcX6KKR@I@ zlFX3cMv(hp$hKw90 zR;rj&)OA59@E2hPkrnXIp!u#^d=&UM)_yYjj(Q+{f2=jSw&S6|cT(#o*H=Pj#*pN6 zRw90hlZD^sg#Kju>Y7T}R`)f6kGghJ(brra>I$dg#JZR2D>w~h4GM>Qi9A_oXvRpm zpD1}uVsdg)7HcTkR}LCO775Eh>0)~2e=tE}>bw3R+Db7B(g2K>07iawQy1E3Ceikh;AK1+d`tbltQAReJN1| z-QoOyw;$5Jz#MW(=cRiTmfr%>+d$n3EWctur29}Tzj>60(tRA3Us%Y1yCQwrRSsc^ zh^1!$2gNLsMR>Q2?&^MokGg|BP>L|D|GKZ2B24wgPR<;f3d%&x6Bs;{l$M%aLwAKV zmtjtbBlJajiFIp=5ZM0@v6S`&%sE6dCuEp-a)T>|Lb7EhcL=;LO|lJpY#}AplN*Js zz>{0dwvf%(m!sGwGsESHk#J5rZ|9GZnC1q%IzLO(-iS0Vh88;wH23zoa97KNFhF!1?%2F9Z>e2|A)%!I*8f?Pk~J8DrFENH_Zgc{lcH$p%YUf}6d*VCe~4Dxnb6ed7n zPgom07+X;Ii3g1VR%g-xk-FD(iyhjm-nTx_o7Z>2?Hx2QOj+yXZ2 z6Cn4I+A%_5zu^TNeCG)Y*M{3@QCJX=1WP_4ME$7CXi<0<@PTv9PU6H6~8ZcGb*JwWK*%|s$VqMb;T)#5nObt^do~&L@?nX zm7|CVz=%9%UAG)XjO3vRk6IX|re}>zNl8siO@@_?)O`djNQ@{?EnE`FKQT@ld2&-5Avz z5DFuF^Q^LuEJjy}rqc0Fp_#gi69r08Nyrf?wBOy_j!LgKRwWxd0 z*J9-o63v9ZVCgUEi=;j(9SzGGlmX5$tna;&CPrmtu}!d%){bSNK1W2ZogPLIyu zp=dC;b@T<^e)5>qtPywuq$WX^vVEC#?o5*Qem0ljh#Z6N<}Gl4j;wFC?DR~JvZ_= z0ezJz?~Bs{`U0gc6(#X9??X~ z{G6b`u2KFl9mTO1ndKcdHD&1ITq7*2>3hIOoTbX?>#e~gw5R(qu%-|`pV>?-r)L4RX`ndv07%e#P@cSbmb@yEy3u5(h*1YdS8(-$Gs~6 zqp^SyImyJcpPKs8xMm#e|MxyFgAu-%-IJAoV_P-NBQ}f_M#{~R97b^ii6+wVh|A=o zI9Q@7#R&F)N4q4;rXo1$<5W>qqAMD3cN1Or_tyxm2@X<@(&v`JG&KsdNU#PPT-gAkF{B$ZvAJQ zJTlfZ%V*mCoNm8h*O8Cv*Q}`dL4Cj7>uz+!CC7hgn`Up^HZ2GqlD^(d7A}|8Sv~$u z6jv@w?m=h%wK1!Na#`{Z%*MZNcAg-c7roUbYJlq&HV9govx6+WW;$7C zYcTl-p&O6vHE7)o7uTankKWm>+??aL`h?rWl=G}ZJI&CwuP4kz<87SW-~U`%?sMO& z@eyWgoki7uD~|x(R9d=NeUIb7-hL^5-v_Nxg_YL+FPVXvb z{?5?+#9bj8-hPm5=L*tvQm{5vwEyrR>4eenPp7^*9vm`1D9&rmahs8zRWX%oKbj=Y z61Cg#HL6Fxh=1+d6^C899b3*Cu{UPp!S1QX&v)}3d}As>u!dLC)A_EkBua+xXV?{q z7W^4@HTTyR9tscfD?E=*pMr+|>_`zVIpt?hNwQ2Qxq-dw5MM!cIvEJ~m|Ng1mMXoasTlQV8adhRD&~jkT##rs5@uAU$FIy?8N@{ zd8JGLff|vix}|6ASBJIKsMvOE-M}l?D<(P52<5cd^sqF@y~Wc_?vD?z8ZqV38f)3s z6r{-^X)4fQs-4c-xNJdYtEJO#wW#{Y`8jFYw8}L)2hQ~07o08{m$mcJHT|-A+TFhx zet#n{U-dUVySG+b-!sXPshj(Bo(2t1`8J8vulzG-ir3pO*>Jeap|K0UK2*0GFr?Lq zNhxo*E1pgfc2ah)CRf|NY+tlB=`F9J-U!S<`+3wBWoD;ns?OYw#l2JLw>4Nq5 zqqjx<&J~?9o7^X~%e1Ll+pb*S9apgQ%4OS%nGtWE51#$3!{5;4wr^W>DRqA+r+EIQ zqiEvEm9bavr;Hg_qGhFNVd7X|t?lo;Uqsv0_3tw;+@wg%&z%N;yv+nY-GFg zxE5oK&u}c?yg0Bd&|wv)Z$!+`1s=C!8GjKXvvybCUz%vAd8@=G$bA2sfrj?0pIrDj z_~p`_>?fWRd?6aHxusHbqkz739*MhV+hfJ2_VruYVOb`BY^?st89fh88^E8J$K9>j zb%*0+=bBj5c=oIDT;oxVTO*_9BeP~kjc209bB#y3s76MOM@B`BjGB)X=Wi^&fB9IC z!1+)6pQ7(6S#LYc?s(J0K^l+8l)dhItV}I<@de+BWmm7iQa9c8J#*VhW7~I3k(SmzD|uK(S}JOAeN`1I zRPjd@TxkdDrO%bZX>^uyIPL#D|MK^;`ySZIvMD&Udr{e8>m^OU&zy61_{gEcB}4Ds zZ=L&4DgElDFObr5A+4*MpmPnYa9nnbz>mO|2J|p0iPb zpbD_6`Jod3qmjFJJ6hf9Zk+1+Xmhvyrh)E<7$&8QPrRG+wtvvGVV;RkPmMf2!tqd5 zjOTdY(~DU*L;bVf=Re;{-_`$^Q{p&;J_<{G=#}Ci!o6Mg4vbVvI z$$AT|))%K+Tej&tW7?q1;wgnYwe|*#Qh$BT*TV0|mqFcF+HOAg1_$e?!XK=5xkxAK z#=Qg+ojD#~({80#{J4D9?DnCjZ8Cco&fNHF(I@MLB6e7tT@P*t_h`THcjy=EqtE7A zcWJNTW45pG{m|x@pSgvJ{ZTV&RdOlhpZlZCkV09JxZzV^+QX0e!)?;bvFsn?3)}VG zvqlzPGp#r3VUL=5a?dr|mxECcA_aM}S^gI{N11JCzM=Uw-=AYkjk_d`ig9WjK3Sh((R)|%!mVp#1u=eh9Qq+Yj7njM|-aHByKbE9{Lj`QwL z9S50r{2Br+r+-U>)hR5uBeja1A}2H}j7XYt_Z&m#%tCjUbIdQIf~NT&GRkN)E-AeM z<_`xfHeY(7N0Tv+y6;`&dgDymKBCtUJqttDj~J)pUqtRbY5VdLk7avxTQ+RFZ&%y1 z=6@UZ-o4U$V+$V3Lew9>o09QusI!&BKPdmPxUdW6KGGT}N ziM!moc4sF)lZ!jrmyi8&t1Pecokg$vy!O|)(`w=4Wv*HsI*S~f`k(LF*>~R4MDuLp z()ZJL^RgY%9y8CL(phak%h9iGwVOL%?B;&?|Juz}*DR!Tu@)Er!w>;5%?V9HYe-5(Vd~e~+Uy9Kd z=c<>!QVOThS<2!6dN-{?6@LVYKeu|6UCtW!mqoc~Kf~gSNbQ|*(UGUFlg9tHGE{4! zlz#Qn*Gl0uI!ihHU(dh)^KNdq?W(4_X5I8FcN9E|n>uZ8-j19twC=C`14A8G9wgj! z6UKB=pLQ>y)#`cK@5Zj1#u?r1-nH>hb-b6IHp1|84x;MIBcSv2FJ3{xi)4;$+v`di;f>J^fmw`yV8NcEogj;B#~k zDxa2nXK5Dql>Ja%iQvo89HM);laqh5bFr<)&Qpay=_ou}pMB+8knVoH6W6VEY&Lbe zqLWh9Mt#hF;y7<*Rb!uQk)Q6Bbt~p_w$Gs_-1o36p8GJ*=I7F!Ve_1>KmQUKlRpgH z++LORFwI=A`6p=tdO%U}ytm<((h4UhT|JxibHXoMuSF-7?$PP zv1399CuheFaH?T+N4W|lOVx>Bx|{8G*6MdBhh%u0Bo4lOc(2u&jJr1;EWF@da;L2* z=(rL4)9b&QuQ-0$x7*?*Vua)Li+vae44lvE?_XqkBc(XuS|nial#V*F0(fZ_MV#UX<9ESzcB0d#lCNstX|f_#&gwetE>xW z_TKNbFaOP9UrYbrPiLML4O-l&P16~-BR9U%`D>JBJLAWV_deWq`p}#~F6C3M?3=*@ zl!tvw=bN7tm^SmnF1Xf|EuVMNHF@fmrB80P`|M}6eOCv07u@!C>X$`(y0x1->-f8+ zefsTt{!ZfAf-x@dX1G`AoYyAjCTzZWCNgmw_ej-+0isP& zUq=T)pRlXdg<3z_oGd<)b^QGgozNYb8%LbiI`rCMfUC2Ay>_)2q*%5t6}))!GmNlX zXKLYiRqsvgjM$dM=l2Wuf4dy)di2p@(a_@j{kq$Z931U#ki(7Ta!cG7G;L9oknNCd z8MMpC_ZW!f#!C8nXzh4~fc~g)U1HfaeEKe>JCQV|5nj=hpCVZ^k&;iF8+c`l>RH z9~4&m)d-2P>x8p^gq~$TrFE) zLHa+j5m_$kv~lC4WxL-l_{Qje);shn+e>3qpE-s84p)x9S#)aZOok{Vs-Pvy`Jt`T zOuhSC9-O(eDZ6b}|I(2yZn(6ssx-RP8kpX*k{(K~odtULl8Pl-vr1x_gyZ5<_uaO6uW2Mx$Kam*wDsxorE>oz@{`={j9jMT}^c6rCA;c)!uX zCG#9E`TL%`S9z*%*rd#EqSmgPlC})k=>IG><%>~J&R+X3;c;l?!nJ2L^fWvoj>Cxp z@??!3sdbnwrYb!Ckl*K{(KtU^?UOY(Qaf67-}r|1{cQW?kpceM=lkT>d9p_Lz~I>Y zMT>6K#V*~A39Oj#(eLVl(`bDrmbR21sU?@*9P77YXWxbUt_@C0Z+VY z`{lmB+mE@D&~eYIT_zLOzbJS#T@>wE9RgcGvQD!d*PPH+Aq zrHvmqJj!5{?YNDcOP8nGIDDAY%)Rb01BiO5iuDGarL;Z>xeB-{@P9o7riwq|qlF7c zMF0NrY3XLx!TzqtH(fb$`=#@Q$0g4UTIrl-)j8`(!qiLODkqT6QV#$3^G_9jRKb`!xUCJJY5O8Ms6c-Oh6w zYCop@JEz!C&%%4Z{rk7$x;{!jJu3U6bL)V)s~-l<{cGojSI&*@p6EB;@*@2Raelpx z)z`DC+@t?C{_A`2CqMEz`7Xtz^3uB3afazTm+$c74)k=o?%VkO`%8w5X*ZLf2QDvr z;BsW|-m)Fqgh`Quc=z4{I~JH!^s>iO0WE3p8UIIo5IBrGg48S z$IPRa^8|v&%6!Mh-9<>t)$-Z)E=LUX9F}(r^Ln*9 zyz<4EPqrxsQwOA+*f#t&aAC){ZM+Sn$yPTzP(1I(Xu;ej27O%9oQm6>+u+)D$D{{^ z^u(Ys{U+03U-854Uvdt|SGHABV+(8R(JL*ro}0e@JIciPXkDC@v_h^Az1|MXGizz5 zR zKOY*c$wf!w%?u4pidUVh+HmmRlEGmYol8fM;?lxz1Z(Q2iPxSbY`5v>Gjwy`9VS^P z+F2Id-)-`JwdkmmsC)05SM6pU9^o-}MF~-OgteE*&v{j5s$Eg|WBu}@AK`>78AoYG zvYh_%$Nyp+$CNU+nUml9xn|oc{sEtB zbE3=6eg8Ps>ig!52YW>07MUA;c%^-8_xVvwt>t+(rmB5;oL$)*QNQF(C8KqN+PcWXYo=kvmq3nV!m6lFTfZGDVk{lj zAz}GTW2-W=DSLEgweFz5TZqQr7K~Qv-2f~XI7L^QBt6Z;jGb;q@>gmN68_&1!PSxIHKY#lA)SOXKO_P7jE@=Pui2DZ? zZ8v>IpGS0TaO(Ud>s%?T6G#F4RKQial`IwYAE`a+BR2q`@@jtMUJ7W)f}d)L{z775DBpD>y@z);NTMtjKTr{Ap^#s?e zt$Ti}Y9uI5DIi)7n9*(IwK31wzWb(bdFJULVm;axXFvPS-A!Yo?5$orYu&`>)Sl6P zdPfFi(>`?ZwZ&oqr=qAA8ekL1=lS0DhnBuDYyI+luI2&r$6aXqjSFp?ZMnBTk~)Z0 zCfcLEHphCB=V$k64rc4Mf`6XM?f3yX$2xTEpY`s@pvi|s-RNOSBe))wS9NbLU1Q?3 zj`p*#xV``KJ$eOgR-`WfxgEM(|81=Xspt=#C{{F8xVyS)_g}SDR#NwFFqmZJuzJO+ z=Z6=C9f~Qkpl8%|UZolPruL^6vpxJkYRg5>ysAQuPR#vz+IT1P`;+tYuD5J5|Kj5P zi?ts7RhWJtZJdbF=HYQmlw3NtJo99~y_2-E%Cxsy?^-kJ%A_Ng=O5|@y@28YI%w0WL(u(i4<{#<9rcRaWEP67TLI|gTGiI1@s}O{h!moh&0>u?8{(T&U_qu zG5oCVPVa(CA&Yw19M91`uWc_2ua&0fudbCRpCOWeto2k;D@Q&}JkFiM@kdLn?hZNiRFu#Zy0{|DBAZ{94h zZ}Ii_FZ3uYAg7Ur9r1~Xn6Tc#Z--SAtuf7po~F6Yo$-j{u=T`>Q~Dp-5loF)BOZ)y z{A^~=ir>vjt1g+~B{p z*|wLNj#J8J6!W{7LZ+1E**Cw1)|ve@K)E6pQQ-l5N3 zZ#^oQzPoFbr{i}KbJFez!s-0iF&npQv~bQE&}jMFE$pcU&5Bn2y{cvUM2xVi&+PY- z{atd2279FkR8=A2c&}7lTvGq3D^5Y(GI5UbA6!?mV$pxvSzPys@=9W8^&TyarvH?D zr4;(bFQcmdNc&}!R5FT3lA1zoYiRN4Mr{)VN-S@+9en*pz?()(=YCliQm9|CW9zCU zFd~d*>*uhqt7x620xsv-C@AZvAWtTXE|Pgrkfb*od3NIy1pwJBmh6Lqv`9A3X|==P z!HnDNBLT$S^g%!Mx(YkYk%h~qC9IOolSv0mFN;gLGNk7WnY>!bWSz~uYGul2wEaHV zZ$ene3)|q>g^fec4L=+>{&5&h^L&hP$rD%Y&Lu;ub_{9fwYlG|OlP)y%|CxqGihP~ z(dN28q~X1h;cL$N(r3w$;rEh6I_~KinO(6F8&yfqqIUYRvwwU0^cMcUT3IIL2ePMHPcf?0 zO&d_q(sa0K0Tr|%)~KRRhEg~C(U~vaElq1vW``7e_z0r%B#T#%N<7i3LEyazk1Nxh)i_W$qKWmN6O_8R^;_El;5 z#_lI>G#%P{W?Q{}&8C;0Ugg`%`KX)SoqpXF54Jd0z4X0OIE~Iy4p-@PtEf)E7Ob=VYffYCMP`Du2-@XyzyV>jvxRyLRdJW}qnh?W%1b zJ%1c~!E0-hrZIKErrrtc=GKo@tziCed{xPZ|H5f0dT!Hv-8J@==zdP#*rBn&wW-H4 ztsgJ!QV&dTd@3ZVU;2Q}SGTn{?f>aYK#Qu!qgERp@eeBE+K!sD)@>~NfBmg+?E7_;a@r24{8!pP<{k)wI%3vH{XpZRv@q)q{rPq?#Y z&n+>ITcx(M-Hft&MUYp{et*F7Ue?cJs7J4tC(pK6)$Z`Cyxj(43po`lLtd?&AhI}~ z%)9g0zN2T_l5J+EMs|!^awW`HcZSR1E@|&`H#Kh$qX-dX7Pi>$G6}sj`Rfj|Hy(ZCIS_{+qvc&)R}Phl2NO zS`Qi{>U_BDVaCj~KAARmxvXwkZ_kFUdM0pfmpo=U&**f^_tuMohe|mXk_p8uC|F6350F1I)_TSAWB&3mqR1#pNhE75cB&5(n0;Dex z(QiTmgpy!FQ-N$t0W3?mphi%!V8IG_1q8iU!3KzkTq%MD6-2~>h`ir9U)gVy-A(ei z@BiLEN^-ta=ggUzGiOejTHl`C-|o2sDq8WT7kjar((Zmvs}l=Xc?T4jdwEZ*G8{Pm z>ae8PyLKDY=?%l$GXsnb;~c-WdiA%n`$X#WmbR}h>mux1Trsn zTxa4c;FFtvn6dl7PtSj#Z@;Ai((fVFbs>214vp6&a|w_i+*VwWJW3Cs;hH~qfSzWO=8t=!dN!GkY`Kec&R zc!kfmqvL+{_8xs($OHHNQsO)EdY}67A5VI4=a&Os*}utjag1%@9Mc{3RdrW>%M8A+ z{zC3|?|z`sEIE30$zkz+eRjv`M&r&U%SkK1$Lv63Sdm5(Vi33&Am-Ol_BYs?JDIFX zD=(`oDXYBG6~0Y5Stw#JrWK3vW7@9K3?H{}lw>c}{KnL!bP|ZUxo%q0u(nKs&SpYK zudlWhX+rVrD1i24G1@jtOjZ^?xa9M(Iz8n@bLTe$Ev>IQyaTIQN zM1|WdVPPH-aCC`cvjksDkw%AN(M6ibgb3Se8?S-1diWsbwXYKV%+9kU^DHJ~Hp*!A z!fF0#ls?fS{~jaM%QYQ9HA@t@j6Ax(QKRb@K@Z0cz_0eG@~Bd!FJgKz z+=PDsB*5N*@8Rq_qCG>3?xdWvNYj2d9+uP$fWvC`7bw!$@@x!CHc#ge!CxuMB_Yyj z9*$e5Dd8O7uDayBNY$#--kWm6r-Zg0^AL* zgd2h;8s0r+HL(g=B85LIbpW6KycWlHRpCWrQ>sI8u914c8>xIT_ zbl1~>=%{E$0WlHiE__wlA7bVqKEfcxeD=JFN{E^b@iikaNYo_rxsSC@&{jL*U85B|rFp2f&5VfQiWBN8&uP%7w$m-rfo)e%*oRl z&H3z^c|mK_*<@!zjH*_%{}^Jm*$i{aB*+`)ofJXflN@`*TFmwz#S!ojcPEG* zLa6$Uk;fI^eJxDr_%VrGq=_CWPaF_}NX+1g{_DiV-&Kj|6nbiseQwK>9m*_AE7JI% z<0WD`i6tb)b&F18ID8GEI2^n;U%dOCf>?~6uE?0{g|dGniD#r*{gPTztKT42E4-mG z!s3&jTq_V&P^1YMA>$7K`#spAs%@w`W}d2QhG)N5IGzJ?MXW6rvF1tuyKtwj1KQhw z9sRCi+6|a2gNWGH_UKTB`OiV!{`sI4hq_A|)O{c8kN?t!+3t0K2@W)w z;77)7V#iO39bYPT9Py{{?`4!jI*K%Hma%m!{&o@C2%1{w#hu4C#CPy0k={%Z)j+AD`>oDeo#jHQsyexE*N2BM z6;3%h@Qa6Y5^tbicClDMHUO?-4O2|ocUQ=0GX$`!&br_> z%wR#Y#m)u=v(DBy@0Rn}hMl!5x{W&P0@=;&Y|!n_Ix9PUgWBSv{^r09Jx*Ft02x^S z2Hz@k1e6;@ov~sAG+Vy~kHqRmqct^aTFy5MTCKTxS>--4)iXGck8mFIonW8# zf)@%tNc&JEtc?!yp3%(IQXP`lU{u+HG8o<|OoGyATq7(ELHOPUQ5(DyWCTfF zXxAu^xlmqap__ITDSpzMKN_i$zrOWs^>LFsp>X8xnq>uffo;@cL%BS(K-9K~tn@I~f1^<6lqA zE^V<=#BX@>5W@-)$|Vq;gNE9ofA~Ec{|GR&P2|280l;$&oG&5`%jLGPAK>?W@V|&Z zVXIa3xSPijp3_D;j)_9tDa5JzJ_Bj5H z0G5y*&eC5t7|kB5vkHwS4<;PK_5oR8a|#OAu@5u*yKar7?f@@gUmLLOKvMV)kOIDc zl|&5x1}$MS2@f;~9y}0*2E!*Y8p8;SWrQ1621|HfmedCoFjy>thcD(rPI%$tSjt!_ zMJk20v?YkNZ~+r8Otc0Ge%7Gy2v*GsgW2qB%d+qehFe%s1|_Q$LBNRL4_K{ML5tWW z%$@=JpjE_2_{%K&b}74w^}o>WEbE5iFrKk(_;FOr*mX67=o=7d_#RdpY-V9iiVenw zVMiPVctlTCg%Lv-lcRR#o!tX~e#l%=Bawfs6~3g5AX1 zj~vf9(TW(5C-hc8)-j4X(hXO50p(VsKTKdC_=pLl9SPS_%oGv%qN!TY*Ju%ffW+@z z=w>8LWL8G2vNUq^^n?s&Oc={Zt9mSz*^o~?VhKf;hzc=7O=E+iatsGsW-P#pJkQO% zQ3F|(S6G!uNC6m8o{SPu6YF`D6~i7?)g+NwL`ij!ZIhFcyW-!R9T2xXo1AfL!;f;9_%iGY}$vP%_$O1U$;rA6l1DA{+ zqJBefqE=xDl3hBjgsmoqbq$W;rQvCT^H&sx5LUI=ZWdZ>*BLDWDrLCE57{plGBEmY zm#MVK7`feMl$05{-HR%|Lp??=f!ZAa#@oFwF`6SOAmLj^_82lo$zoztj$GqK495@D z7nLq(gjfa9Y79qbz_+X&!_kvjf4P~?O@E`8qrcIReKLldaCtjGg3CQvD&J_R{VY6D zs^Gc=xT33@82OlR2G^%{xa@xYn)0;=>qS1C?b%z5DME`e*d}s2@-cO2F=mXt#U?N@ zP{hR07GNUgf&(UE{$y}5Q-?bqXs>5*omAk0%;MRhdnYlnf`AeQWP6wz6e?3DC1m6J zpEM7(FH@1P4ig)n1>3Ix`L>5#=Chzgq0Lb#;_aHZF_G6S*S3!lTq*@a$$J2T$B*B0 z4#7zXepz%O3Bf7^e-2sxIf5@Dc=`I-RS2FkpaqCvUSlY=G9c-pmnXi2U@d}A81@}Q z@C^i?@!Iqzg5M&z|HCKsC>tS{z4yt3g#h6Ol2|a5y!In_U+$y#Ab1AB)n7h;1!aQ~ zT>tsQDG2sMaAWWtQxTjXSHt>;0wa-h=La)w2&N;r{G;6(1WORK795;{;CdE(DXI*? z$KaA5geKEbOM6a2qwSXCJMp(!zEvxnD#OGViCi7 zr~5b395JuEVK4coT&pkKNVEK&{w&4;9?yPCe$Sq)C7cT&KdgFr{t<{t^x+@OK8}&~ zyxpFEs*-;>hs?8-{MJY%7qONc#@O>gd&zaIUcf)~oIfx?%m_1hg0(uj%%Zx3PST zMgrdw)2i%gcPX`gDb;#U<60k~HhsjBTdB=RDc`P*8^n_VG}7b%^FaziV{B}^K1W@S zW8-zr-u7>-ZALXgSW&Y4t$Z4_-71QLK9N$pAvL+1x~*12CNh}^zT5Q-gf%;X7rze1sH|vrTm=!9rN4i-<#2Y>Ohu%tCXM7f2t_tBzpF? z)4#Vu{}FF6SOr1Q8S}`;*G6drFdGXUVM;Qt_VmE!F`%`X@H@u{v5W&ph=LW9dCK#3sonQXwGuF;a`>0!xPjeM(-goTuLwPLxn6~eHI(<@r74e3TpF!{_dm~A?t zV>q%gvs4z$05kic`_#ja0SYR{_=Cj6dQ0r9A zDDvjGIfz=XG5~SSJDftT%{Cg1Nmc#uQD|Jzu8G6zx&B= zg@pR9r6TJ2!NW$|jX;3ktJTD&I#}$;@3$6=h2I4mjSg0ig@*h+YHElHCUBa6U~LU2 zhpM#I<1W4VPxArqN5_2j)xJw_pWUJVdGqR*N+8f-)(y5v;M0FtXNUA zawUejRy@`qoQ?+iJ+-)pb*=$nu|ItQcU<+sM^8I|^(*Fi^gP20+10w4B zTUSs(h|K9sh+zF0YNUW1wrS~tvYbcbTnq)=VW5Dyb(T5`m?>Av_=*B**{{3nYB`%x zKuw+5$^{i99HTzPnY^HJalX^lmLUZk#)^#sTd@Yd;A(S|7Agw#0(4_ufNfSW*-+qA zCWBmTgF5fBBag8?Eo%28L#JPb@Pv zf&3zAx2ESY}zf%s%qmNVvVSDZpc#qXIs5y?Yi|4M(BBS4gvGooq`rROevT$ zgLb!ok%L}qIAsRC4{MY(>q+EBK_}8ErV|@9)~FzOLU9TDsrgDyaI~W21kVzcoZ!Sp zN>1>srj(rE45vyC1>YqSQLvd}G5c^j1p!g;daKY%HAMwKXQ1GxI4@H$v>kNe)GuLp%jcq{%g;Cp>7Eo8)wl*63GFq3X32NKJTvKD!NxGj}KQL0;WLaly zJAvtpioPi-UzSu%(rq7ZN%L!LG_HfHdGx34b!z)-)j3NKue-17j^393+Ss;zhkbl~ zQ>6a+yC2ES^)3zVdT8pY6)RQ%X7Dz({bJo(W=9#9#OrZ#aGYYH`!oGG_7I=_LVZjW z`xkabLn$=91<-~jqm_?U&{AlwsgAe~!=`X1emM?8A8Sdi8*G$5Tve-}sVckU!V4kW zcUDd4C=6-yQ&7n3 zsRy_?S`$iav$xrbQMebtfJ$tq`0z-Jg?db72odQR;vEN9Z$clq*<(P`S|x`_8n=I7sPN`cmB?}t2RL{@yQoD04z;C+~ zHkuTw!mmtY>O?N@w>FhPdcyPFvqRE){6ccFW=6#BZ z5CazK!>vP{&(+7ODW<#yc#D}~qpYD$@W$Cp;x$l3%>AGWwi2~d1*ESQOG!!1lP?@P z=S!C;Zr>99uRZj?EC?P&+PNB0m*ddBCHBAeu>WPlXsk4c%Op2t{ky4Ynu(Z}o$Ic; zr|`_zKm53?@X(|?QkQkG{_>?Rbnovk_vlcl_kHhQ`*(J=pl8$pHzOUSf;8yV!ECik zs(O=_3M^7O{ADmPjlRRh7LZ?uuYqD1)D;v{hif=|CTa9d2z!@A)$xuNfY5Q4jdGw* zDIm0%s5+i*Npr{09E>kYbJXz%#^`Kn;bw}Pur7le`4H$^(tkbrpUdv-J|cSnOqi2G;3G zW_;|FYo&hQ!aPl#*#4&|&a0`@oH`5jXM2V)131^FSruyyIFU!4wjiI@M4jqU1KW35 z0|QlIp%F*#sIwPuWf#b~KejV$S*ZJ8&8qt+vF;mE-E99)uA4fsX`PutI%gQDbGsTG z%hxI3Hdn2u&aehHX|-4j*(dAoovXO{!1)+c=STRCuJcrY`b!H$Lg(+nf!_l>nFBGV zov%||G=mtnJLhj4R88A?(Ko&D@;5g&t=?+MjDF(!;ZaY1_w2;nyN|5={@hEI&r+8Z z-UCMNT_ysfs$J*D(L|Rb=<|^<(=uwOF7xpfS1c=nFn3vlsmrbwbfe358|4+KxJ}GXk$~X%n65^Oa+oYqe!$5t;HCa%{sVi1G zxK+$9knp8s*K7lI&1$%m%;T9s!E0<>jiRm#EL_Xt#)hsYE8l#wWtrKvt(y>t0AGBi z!YR2l^|*oy@#iAih0v{v8~EMkZ;mft^U(4V-TPddQ*j&-n9UI%o)E%4Kl&L#*aAQ-q@&X3M&J%oSfG^OZq1eToX>D0m z#{S<8_x$|spK`|qcIy^Dy$$)A3r$L#3W1X(?Eb~QTaGKw#~_f zVh>R4JA5DCLIZGMLRl*?TYBtQu;kU!0NB^relNxTWTJs-KoHnBYaJKF3>@Q4ZVmzM zJcP%`s7~1M=QpUwn>NZ1Vc<7- ze8cTRTHFm`J5}me5~$~^2I?79%ic&3XTAU1_Alyr2_08pL~kUE9y_7Zgef5$1~gC! zw#Ax$8-aRt#nT94-Td%Be;t8(O)_LruLOrpEVfX!KZ-!T_8O?yG#ENenD%t-ageP%NRD02{R z>wn{I1L}Q;Fvd10ISjIfC3Mg~2DO3_500&Lv% z$riWjSR@3E)5$p8#iEkkk)}TD*l7cHMVk6$LfL3p4b-=SDJax8n%T%*oYQb#rQ-%Z z#h9wOE%c`ELsQ?GY%?mKUC|Sj&;QPCXzG_CcI*o4*iGn3F!I_v=3*e4clVk4B|GUD zvnMdA+~kW-O)kBf%zz^R;)Y+p52O>J`I|YCo$hn-`O;|CQNOFeB<8ICCm5W9mio7{ z(%>$bJ7aK*FdBNP)?_tNf4zbFccgqQvI;$MzXg{WrG#Nf80st`2MO8E66PRbwzC8) z5-iRV9znt;X9=$(;WdW@>VM2+t_Hw|ko1X^L_@sTq_5nS#+C3K9DEQodfX_Ir)1n@ zwnkE1E0AXa`fs*|Q(Rkouw|i~i{d)-lgkuW)PmJT+!R!a1&~DX*C7iit_-W6A=ulc zxTV-^h=IjZz1cu<_d!7t&zXp0#n;$6ihD*JulO-+yo^@16u~;2uZH8UBaPzTQ&z)P ziaT0sp`kypyxKghisEo>0%}PdL?2sI$FcLD%DOl1RhG|;H-9L;t04<&WJj!ht0}%6 za!wovD z=;X5mT5%#%nT9w!1FWhjt@|S~tTqqSW)?c(w~%Vmg8*e(GgdV;a85InRT`eiYJci{ zzcI6-_4Qb0#$db#Y{HNVIu$2K%#DIdzC9Z2#7m)>aftLmv z3^cHS3>6R?CMjw*qDsXmT^J2|3REPefd2BfI>|C^cD1B6L(tN|uxKQqocbc8qx`er1@I3X+mG8gPz_Ck4r+e59n84T6uD z_b8gCK`ghVY4y? zxMCL<))5^Ixwi%5Jj80FDa%yjOhX>TII67mE{xF5nblE^!&Jeo^+P+h0HUGcHk#T- z1(9g2cVYEu4j7`f-h*4*b&w(K+Z9$_>10j4ILJ-zLl0wWQdtVN(9mxnR~4H(I)z&b z&;`u0E{BXH<&OE2eo%(GHqBM$KEU1z5F$9et>#U2xsYdv5Kyww_j*j zr8tuhdjeCY^zsW0tCnU{ZbTfm!9c^-H!>oEyJQ-bEgWb^K1kof7kSWt2w{o%DQ421U-1T z7ZOj&*TxYkmm1!|M8k0@0HucaXjE!A5^+#PncpGss&ye@G#po9h8rjWdl+behR>)r z*Jvr>H)cS<^8qw`F^?FIT@^-hvR&8|7N)ej0ae3rAU_ZxUaF?y+aVRSRvLb<+$s&< zD?->X=Lsq28*)x`8FE&z)^G^_1cX-=2uJwTm}^A{VG;v`BchZD268fu=*c7OAZM*% z*c0rpanOkICK@rY5zHe>L`X)Y*dbByJ7PJ?%xPTaL8;6_dl{g>%0M6Snt?{VY6pG4 z)m*J588G0J!zE|_3YpK?GhgDF*+?k7PKh2Ed{9OM3?{ahV7O|BffDzlzXd#ml_aJRIB?5o;%>@iH8)sup9Yac7QamL*jW#K1q*&d2^pWX>Yu4j`+gd&X-2S65 zBqhx>Q4;pX8X!4|O>-dVq}%Lhs=DDuz_KJ&t#6@LY%R&Px|3+2IgyJ*d64vnBj3aZB8O4$$N**o_TylgwaFi_ZKV)TcenVbJ z#`q^I5`dB+{~6!2yrxEZ*COvcxn54soT~TMu3$8sjP-x=YYI;%zq7);Qj}dAfL%Q$ zALS8@gc*@1Q}Q=T1S4{Rl7HtB$vD}>h}=jiK4OGb9HDwjiBck%pkQ>3{~3Zr{$eb4 zx^5){Ck6NJQ${J^q~xwNuM)ulVgXJ{u@b@HOQw{CJVJ&~pp+UVg288`l#M(>hOeGd zo)#k{`1VrDP9=iF_rU6P8ySougwiyWg69=dPTC>6&|n%$`CEx#m59?2r3QwFFD&y@NJHZ@?KNL>KlVuXsQvx1&SJ;%+y96{pK9+djGNW!VRFSW8p#e z6cxk-dlHAz-bNF9DXo~z02sr9LWf6%W-MH=u%bjix4eAL!ugU=WtbA53!=2^LKG}3 z(9cl)C?7MW{fkLImAn%_xbDxS#;D#VO1q@YehzIFRg}*uDbr79mpJw8J}25!wKb|# zXm4+8ftf}PXriqLOf(9o;w0HCwl!uhRnD4FTDBlTPxHzbmMzeiESX+XQe3H@$J?r+ zB|J-JIh9HMb^OCRB=vsOHKCUR(dbry=rKT)?7H`(djg`13Pfno@l7nV$ua~K1w=`* zltxdpRMY4=u}AL(UlfS`L$))FD2J=;XisUBgz$`=pJ3qgnym%@jR3I zl7t_IMt`AFks2Ytv}_U0EiKkplz_m>^ou0q&t1qy-Q|x8`D2y{T@>Vxv6yL0jC9@tB&H2yXr zT4`&1shP&dHqq9-CK}J>7gy4&CM_Dz3MR;?g>EFP3m*UN~SW-~Nb;|e^jeQ35i#3ljpaq-r*<1lkXl%%k8A6%R_$jkJ9;&4b zoY>@v{GD3LOfgXAU?83{*+Cw0F_Vdv1TW9tsHIFSXft6#&FID|5m3c&X!^KtTn!U- zW;uVImNG4rd3QBW!qc>r*@@L4@0>ckOiP*12;#%El)0+WyR?+K59_wf2iSCF7Cb!6 z5i;f}^Mq)Ja#+A-UIB2wh&x7<`L{Wbzj;CvTH`fZ${fvbpni;&CX9d%Yz?CcJ>{op zX~Mv20Q@?Ch?XX7LJ{^3Eln6-!@G=CpqZUepHSiQ5n7rsL41RjCfv_6(S%j}1zO$_ z*ALK+&Pj{!{~vrYk|t{KV5H0s6aCCI;R$rd4L?lmXQBzeDD)*tg9QCN=wy%qD%O;k zQY8&0&IOYwZ7nv_#KCAw@0#}}K5U|ix7*ul;;q0Izvf62|HfmEGDMSF10ue8?i!*= zeE<y9CSmGpCPXcMPm!`ZsUXVg z1Bm|V9-^#l6J>?jA>uR(eSQA?itntGJ>Jp+xWGh1CZbo5qjS8adF+wMWj5kF?_nvSv;nkai%BZx}NDi_X} zQ98Y}1l**kkE|_?();X}Rmw>ATV~2$>Yj_T&!DX*8@08dg32mqU_xy;AY$*Em{Qff z&l#oCQ*$N(qVL>~M^2@Qa)!8usNsN!5V@V=9mgZ*GoiCG9yw>slyjGRh;m{7&%wy+7JS_cPv;}RyWJzh|0>%KP4b~`m+fmw4?m?Xyq&DN0i^)N_iJpU6db>YOga(A!@)p zpI>31{CQ2PcNXy-Xs+6+pMi$Hk<26o<=@9v2a=|r|1et}h?;&w8$tdXEF;VUY#EXN z4$CMlxbhFNWds&nJmn-?M#%O3z?KnKZc4Df>)ot1ZiuoZh5@{wpR(#MNKjVYR50E^ z1?j|3is5B+Sp}=IKPb$oweh3EDpD#~C4?%ZRItHJ1^MoWw_ulv3YIIwt7@xpJB)bM zZT-$(i;*l}1`o9Lw)?gW-Ov_SW*4~3yrT<)?D z`*OEA_J~^)^c9d){s^y)?nyUU8jtP~-@PEJ#)b(1HWX>vdlZB>|PGE_fB1i0vzzI$bNJ?u=pUsdi+OAgcVCPon=H!Ds)AS&@cWu|b8 zG9FVZ%rpf{G`A38|98q%=MXiVjMy|JLga2T;v4|MEGbb_uBvb})e{gs;vS-@v4H4D z8KS>87njbTQ8~F&h<@Jvlf!L*b9^-I(1 zY6r}C;$OdvI(Sb&f~HMs!dDf)ADg>+YuD+W&%80~S&hcyv#TCQyhRV%N#=ELJ|DOu zs?*a?Y(2mKk<7jMt0T1KKh}EYEQ|m2aLP`P;%ytUJ{LK}Dtpx zq!-uWN}M`RuKGg^d#a<3m-dSo_u@s(pC9$vl9QUU?31ZAVe0h8VeOTM_6CRV%Zu7I zE~APGSn-YO%P}aS+A&i3iX8OK_6g;I-Fhi84FjHW8Mhv}&)hIt`i{8!w~r4WxWl$e zoxaVh8=DQdtd#B zpLPlx|N5eWDV?V$-l6gD8{OvT${6di=ZC#X|D|U~ zOu1+O@b&Awf4TeNH=kMZ%g0)bp!SZd+A{N?DV(<3q$aPsa&c+KmubJf_H}E0#*o|A zhnx%c4>Ru6dJer1G0ZhUAyZa;-}!#m>CH;1SLgcH_tZn@j{bI^@#(ML{eJlBd7o~Y zSF28M7@iyVkGC4eHTZU5s{anbb8(XTcjcF_@9N&G-H*pcg?2yk(!y`k2i)KNw8<~1 zJts5-+xtmPg{<1 z?UAYLd_s==b!hgVbw^gsduQciezEH&{dpHq-lgw^-R@DUORrOR@pw{g==fyawIM5h zxHIe8-F3Zh-R0KTvj3uU|5TT66mC#|qjZg?-btJ~DrIcy#U;1C_<~R7sUgLm{kAyT zko3)G_YPgX!jRbyum5q~ z!E-U{+MI;>kWAaYyztVND=|A$x=q+WzxSVudSAV!v7A^jJ8sREJ?l;#t&d$-_t>eF zg);}A+7a_>e}Ui@&PtXVJd$2p<)XA3t4p@E_Bj z?7O+bd}l$xf%_-!z4vzWgVn~J9`C%~|I>IUfT*LA)gO(++P#hA9AdN%UyVQXjiVf5 zP9NQNvGW%5!8TcM?|VOUOoGpS0V|*He7W$5VbtrBmM^+uEID@e$LBstF{f3uE3P~L z!psvh5>ux9wC1p1_q*opsNWpuP+P+fucxjwjB@K(rueKpm;Mg#b-F6tdiJi^nLm89 zcrTyrF6>>hWs=9ab{R_wCtMh|J@B&~x`X@nr(WJ0zpq!-J;A2>dGU2jQ*M8_;C=1*dCvlUz2U9*&p);GuI%%3=~AnNb``Z94?Y^; zyKU#o^`%9duRi3JI(>$|ciX(HI}_IHGJjkD#0qOc%JJ`x_V=2DCjMth$bYVBY2b!I zuNyhM5r0kIUp8n($WKE%y>57QY}}BoOP{XYwr=R=XY!|?>3;E+de4Y|9GMV5`krwV z_tfCsS2cgUlKzUe-QCFx7gxS9@1^-*Y)N67dQ%FM-=-x?H&1OnZ*Fh4T+A!Jwz$h(*?VGp?0$IK z`TC-QS8NvGNQlh==tg8+x%vw{jqz>i}eHR+eiNzT>brs{GDUJ9ov6$pOH&i_w@dy R;*Oy7tJ$9{uK4#`{{>#NYmEQ^ literal 0 HcmV?d00001 diff --git a/rollup/sync_service/types.go b/rollup/sync_service/types.go index dfb9d51d222a..0bc062772a91 100644 --- a/rollup/sync_service/types.go +++ b/rollup/sync_service/types.go @@ -5,6 +5,7 @@ import ( "math/big" "github.com/scroll-tech/go-ethereum" + "github.com/scroll-tech/go-ethereum/common" "github.com/scroll-tech/go-ethereum/core/types" ) @@ -16,4 +17,5 @@ type EthClient interface { FilterLogs(ctx context.Context, q ethereum.FilterQuery) ([]types.Log, error) HeaderByNumber(ctx context.Context, number *big.Int) (*types.Header, error) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) + TransactionByHash(ctx context.Context, txHash common.Hash) (tx *types.Transaction, isPending bool, err error) }