diff --git a/.github/workflows/qa-tip-tracking-gnosis.yml b/.github/workflows/qa-tip-tracking-gnosis.yml new file mode 100644 index 00000000000..6face698b0f --- /dev/null +++ b/.github/workflows/qa-tip-tracking-gnosis.yml @@ -0,0 +1,125 @@ +name: QA - Tip tracking (Gnosis) + +on: + push: + branches: + - 'release/2.*' + pull_request: + branches: + - 'release/2.*' + types: + - ready_for_review + workflow_dispatch: # Run manually + +jobs: + tip-tracking-test: + runs-on: [self-hosted, Gnosis] + timeout-minutes: 600 + env: + ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir + ERIGON_TESTBED_DATA_DIR: /opt/erigon-testbed/datadir + ERIGON_QA_PATH: /home/qarunner/erigon-qa + TRACKING_TIME_SECONDS: 14400 # 4 hours + TOTAL_TIME_SECONDS: 28800 # 8 hours + CHAIN: mainnet + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Clean Erigon Build Directory + run: | + make clean + + - name: Build Erigon + run: | + make erigon + working-directory: ${{ github.workspace }} + + - name: Pause the Erigon instance dedicated to db maintenance + run: | + python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true + + - name: Restore Erigon Testbed Data Directory + run: | + rsync -a --delete $ERIGON_REFERENCE_DATA_DIR/ $ERIGON_TESTBED_DATA_DIR/ + + - name: Run Erigon, wait sync and check ability to maintain sync + id: test_step + run: | + set +e # Disable exit on error + + # 1. Launch the testbed Erigon instance + # 2. Allow time for the Erigon to achieve synchronization + # 3. Begin timing the duration that Erigon maintains synchronization + python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py \ + ${{ github.workspace }}/build/bin $ERIGON_TESTBED_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon2 $CHAIN + + # Capture monitoring script exit status + test_exit_status=$? + + # Save the subsection reached status + echo "::set-output name=test_executed::true" + + # Clean up Erigon process if it's still running + if kill -0 $ERIGON_PID 2> /dev/null; then + echo "Terminating Erigon" + kill $ERIGON_PID + wait $ERIGON_PID + fi + + # Check test runner script exit status + if [ $test_exit_status -eq 0 ]; then + echo "Tests completed successfully" + echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT" + else + echo "Error detected during tests" + echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT" + fi + + - name: Delete Erigon Testbed Data Directory + if: always() + run: | + rm -rf $ERIGON_TESTBED_DATA_DIR + + - name: Resume the Erigon instance dedicated to db maintenance + run: | + python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true + + - name: Save test results + if: steps.test_step.outputs.test_executed == 'true' + env: + TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }} + run: | + db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit) + if [ -z "$db_version" ]; then + db_version="no-version" + fi + + python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \ + --repo erigon \ + --commit $(git rev-parse HEAD) \ + --branch ${{ github.ref_name }} \ + --test_name tip-tracking \ + --chain $CHAIN \ + --runner ${{ runner.name }} \ + --db_version $db_version \ + --outcome $TEST_RESULT \ + --result_file ${{ github.workspace }}/result-$CHAIN.json + + - name: Upload test results + if: steps.test_step.outputs.test_executed == 'true' + uses: actions/upload-artifact@v4 + with: + name: test-results + path: ${{ github.workspace }}/result-${{ env.CHAIN }}.json + + - name: Action for Success + if: steps.test_step.outputs.TEST_RESULT == 'success' + run: echo "::notice::Tests completed successfully" + + - name: Action for Not Success + if: steps.test_step.outputs.TEST_RESULT != 'success' + run: | + echo "::error::Error detected during tests" + exit 1 \ No newline at end of file diff --git a/cl/beacon/beaconhttp/api.go b/cl/beacon/beaconhttp/api.go index d38775093c8..149e5864b04 100644 --- a/cl/beacon/beaconhttp/api.go +++ b/cl/beacon/beaconhttp/api.go @@ -97,19 +97,30 @@ func HandleEndpoint[T any](h EndpointHandler[T]) http.HandlerFunc { } // TODO: potentially add a context option to buffer these contentType := r.Header.Get("Accept") - contentTypes := strings.Split(contentType, ",") // early return for event stream if slices.Contains(w.Header().Values("Content-Type"), "text/event-stream") { return } switch { - case slices.Contains(contentTypes, "application/octet-stream"): + case contentType == "*/*", contentType == "", strings.Contains(contentType, "text/html"), strings.Contains(contentType, "application/json"): + if !isNil(ans) { + w.Header().Set("Content-Type", "application/json") + err := json.NewEncoder(w).Encode(ans) + if err != nil { + // this error is fatal, log to console + log.Error("beaconapi failed to encode json", "type", reflect.TypeOf(ans), "err", err) + } + } else { + w.WriteHeader(200) + } + case strings.Contains(contentType, "application/octet-stream"): sszMarshaler, ok := any(ans).(ssz.Marshaler) if !ok { NewEndpointError(http.StatusBadRequest, ErrorSszNotSupported).WriteTo(w) return } + w.Header().Set("Content-Type", "application/octet-stream") // TODO: we should probably figure out some way to stream this in the future :) encoded, err := sszMarshaler.EncodeSSZ(nil) if err != nil { @@ -117,21 +128,10 @@ func HandleEndpoint[T any](h EndpointHandler[T]) http.HandlerFunc { return } w.Write(encoded) - case contentType == "*/*", contentType == "", slices.Contains(contentTypes, "text/html"), slices.Contains(contentTypes, "application/json"): - if !isNil(ans) { - w.Header().Add("content-type", "application/json") - err := json.NewEncoder(w).Encode(ans) - if err != nil { - // this error is fatal, log to console - log.Error("beaconapi failed to encode json", "type", reflect.TypeOf(ans), "err", err) - } - } else { - w.WriteHeader(200) - } - case slices.Contains(contentTypes, "text/event-stream"): + case strings.Contains(contentType, "text/event-stream"): return default: - http.Error(w, "content type must be application/json, application/octet-stream, or text/event-stream", http.StatusBadRequest) + http.Error(w, fmt.Sprintf("content type must include application/json, application/octet-stream, or text/event-stream, got %s", contentType), http.StatusBadRequest) } }) } diff --git a/cl/beacon/handler/states.go b/cl/beacon/handler/states.go index c4436429a0a..037852fd7c1 100644 --- a/cl/beacon/handler/states.go +++ b/cl/beacon/handler/states.go @@ -205,9 +205,9 @@ func (a *ApiHandler) getFullState(w http.ResponseWriter, r *http.Request) (*beac } type finalityCheckpointsResponse struct { - FinalizedCheckpoint solid.Checkpoint `json:"finalized_checkpoint"` - CurrentJustifiedCheckpoint solid.Checkpoint `json:"current_justified_checkpoint"` - PreviousJustifiedCheckpoint solid.Checkpoint `json:"previous_justified_checkpoint"` + FinalizedCheckpoint solid.Checkpoint `json:"finalized"` + CurrentJustifiedCheckpoint solid.Checkpoint `json:"current_justified"` + PreviousJustifiedCheckpoint solid.Checkpoint `json:"previous_justified"` } func (a *ApiHandler) getFinalityCheckpoints(w http.ResponseWriter, r *http.Request) (*beaconhttp.BeaconResponse, error) { diff --git a/cl/beacon/handler/states_test.go b/cl/beacon/handler/states_test.go index 73fb70380a9..58bf8657312 100644 --- a/cl/beacon/handler/states_test.go +++ b/cl/beacon/handler/states_test.go @@ -426,7 +426,7 @@ func TestGetStateFinalityCheckpoints(t *testing.T) { code: http.StatusOK, }, } - expected := `{"data":{"finalized_checkpoint":{"epoch":"1","root":"0xde46b0f2ed5e72f0cec20246403b14c963ec995d7c2825f3532b0460c09d5693"},"current_justified_checkpoint":{"epoch":"3","root":"0xa6e47f164b1a3ca30ea3b2144bd14711de442f51e5b634750a12a1734e24c987"},"previous_justified_checkpoint":{"epoch":"2","root":"0x4c3ee7969e485696669498a88c17f70e6999c40603e2f4338869004392069063"}},"execution_optimistic":false,"finalized":false,"version":"bellatrix"}` + "\n" + expected := `{"data":{"finalized":{"epoch":"1","root":"0xde46b0f2ed5e72f0cec20246403b14c963ec995d7c2825f3532b0460c09d5693"},"current_justified":{"epoch":"3","root":"0xa6e47f164b1a3ca30ea3b2144bd14711de442f51e5b634750a12a1734e24c987"},"previous_justified":{"epoch":"2","root":"0x4c3ee7969e485696669498a88c17f70e6999c40603e2f4338869004392069063"}},"execution_optimistic":false,"finalized":false,"version":"bellatrix"}` + "\n" for _, c := range cases { t.Run(c.blockID, func(t *testing.T) { server := httptest.NewServer(handler.mux) diff --git a/cl/beacon/handler/test_data/states_1.yaml b/cl/beacon/handler/test_data/states_1.yaml index f5e63003f7a..8b1e1866a8c 100644 --- a/cl/beacon/handler/test_data/states_1.yaml +++ b/cl/beacon/handler/test_data/states_1.yaml @@ -1,2 +1,2 @@ -finality_checkpoint: {"data":{"finalized_checkpoint":{"epoch":"1","root":"0xde46b0f2ed5e72f0cec20246403b14c963ec995d7c2825f3532b0460c09d5693"},"current_justified_checkpoint":{"epoch":"3","root":"0xa6e47f164b1a3ca30ea3b2144bd14711de442f51e5b634750a12a1734e24c987"},"previous_justified_checkpoint":{"epoch":"2","root":"0x4c3ee7969e485696669498a88c17f70e6999c40603e2f4338869004392069063"}},"finalized":false,"version":2,"execution_optimistic":false} +finality_checkpoint: {"data":{"finalized":{"epoch":"1","root":"0xde46b0f2ed5e72f0cec20246403b14c963ec995d7c2825f3532b0460c09d5693"},"current_justified":{"epoch":"3","root":"0xa6e47f164b1a3ca30ea3b2144bd14711de442f51e5b634750a12a1734e24c987"},"previous_justified":{"epoch":"2","root":"0x4c3ee7969e485696669498a88c17f70e6999c40603e2f4338869004392069063"}},"finalized":false,"version":2,"execution_optimistic":false} randao: {"data":{"randao":"0xdeec617717272914bfd73e02ca1da113a83cf4cf33cd4939486509e2da4ccf4e"},"finalized":false,"execution_optimistic":false} diff --git a/cl/clstages/clstages.go b/cl/clstages/clstages.go index 7769b3ed783..d65a46dc2cf 100644 --- a/cl/clstages/clstages.go +++ b/cl/clstages/clstages.go @@ -32,14 +32,12 @@ func (s *StageGraph[CONFIG, ARGUMENTS]) StartWithStage(ctx context.Context, star errch := make(chan error) start := time.Now() go func() { - sctx, cn := context.WithCancel(ctx) - defer cn() // we run this is a goroutine so that the process can exit in the middle of a stage // since caplin is designed to always be able to recover regardless of db state, this should be safe select { - case errch <- currentStage.ActionFunc(sctx, lg, cfg, args): - case <-sctx.Done(): - errch <- sctx.Err() + case errch <- currentStage.ActionFunc(ctx, lg, cfg, args): + case <-ctx.Done(): // we are not sure if actionFunc exits on ctx + errch <- ctx.Err() } }() err := <-errch diff --git a/cl/phase1/network/services/blob_sidecar_service.go b/cl/phase1/network/services/blob_sidecar_service.go index 57dde2104c5..0c89c9db339 100644 --- a/cl/phase1/network/services/blob_sidecar_service.go +++ b/cl/phase1/network/services/blob_sidecar_service.go @@ -78,11 +78,15 @@ func (b *blobSidecarService) ProcessMessage(ctx context.Context, subnetId *uint6 currentSlot := b.ethClock.GetCurrentSlot() sidecarSlot := msg.SignedBlockHeader.Header.Slot // [IGNORE] The block is not from a future slot (with a MAXIMUM_GOSSIP_CLOCK_DISPARITY allowance) -- i.e. validate that - //signed_beacon_block.message.slot <= current_slot (a client MAY queue future blocks for processing at the appropriate slot). + // signed_beacon_block.message.slot <= current_slot (a client MAY queue future blocks for processing at the appropriate slot). if currentSlot < sidecarSlot && !b.ethClock.IsSlotCurrentSlotWithMaximumClockDisparity(sidecarSlot) { return ErrIgnore } + if b.forkchoiceStore.FinalizedSlot() >= sidecarSlot { + return ErrIgnore + } + blockRoot, err := msg.SignedBlockHeader.Header.HashSSZ() if err != nil { return err diff --git a/cl/phase1/stages/clstages.go b/cl/phase1/stages/clstages.go index 2118800f4d1..6d09ee3166e 100644 --- a/cl/phase1/stages/clstages.go +++ b/cl/phase1/stages/clstages.go @@ -252,7 +252,7 @@ func ConsensusClStages(ctx context.Context, } // This stage is special so use context.Background() TODO(Giulio2002): make the context be passed in startingSlot := cfg.state.LatestBlockHeader().Slot - downloader := network2.NewBackwardBeaconDownloader(context.Background(), cfg.rpc, cfg.executionClient, cfg.indiciesDB) + downloader := network2.NewBackwardBeaconDownloader(ctx, cfg.rpc, cfg.executionClient, cfg.indiciesDB) if err := SpawnStageHistoryDownload(StageHistoryReconstruction(downloader, cfg.antiquary, cfg.sn, cfg.indiciesDB, cfg.executionClient, cfg.beaconCfg, cfg.backfilling, cfg.blobBackfilling, false, startingRoot, startingSlot, cfg.tmpdir, 600*time.Millisecond, cfg.blockCollector, cfg.blockReader, cfg.blobStore, logger), context.Background(), logger); err != nil { cfg.hasDownloaded = false diff --git a/core/types/access_list_tx.go b/core/types/access_list_tx.go index 52320355567..e7b120c7f39 100644 --- a/core/types/access_list_tx.go +++ b/core/types/access_list_tx.go @@ -510,7 +510,10 @@ func (tx *AccessListTx) GetChainID() *uint256.Int { func (tx *AccessListTx) Sender(signer Signer) (libcommon.Address, error) { if sc := tx.from.Load(); sc != nil { - return sc.(libcommon.Address), nil + zeroAddr := libcommon.Address{} + if sc.(libcommon.Address) != zeroAddr { // Sender address can never be zero in a transaction with a valid signer + return sc.(libcommon.Address), nil + } } addr, err := signer.Sender(tx) if err != nil { diff --git a/core/types/blob_tx.go b/core/types/blob_tx.go index d9f0eb0ec6c..cdda3ea7ef3 100644 --- a/core/types/blob_tx.go +++ b/core/types/blob_tx.go @@ -82,7 +82,10 @@ func (stx *BlobTx) AsMessage(s Signer, baseFee *big.Int, rules *chain.Rules) (Me func (stx *BlobTx) Sender(signer Signer) (libcommon.Address, error) { if sc := stx.from.Load(); sc != nil { - return sc.(libcommon.Address), nil + zeroAddr := libcommon.Address{} + if sc.(libcommon.Address) != zeroAddr { // Sender address can never be zero in a transaction with a valid signer + return sc.(libcommon.Address), nil + } } addr, err := signer.Sender(stx) if err != nil { diff --git a/core/types/dynamic_fee_tx.go b/core/types/dynamic_fee_tx.go index 199a945f5bf..2cfe265bcd7 100644 --- a/core/types/dynamic_fee_tx.go +++ b/core/types/dynamic_fee_tx.go @@ -432,7 +432,10 @@ func (tx *DynamicFeeTransaction) GetChainID() *uint256.Int { func (tx *DynamicFeeTransaction) Sender(signer Signer) (libcommon.Address, error) { if sc := tx.from.Load(); sc != nil { - return sc.(libcommon.Address), nil + zeroAddr := libcommon.Address{} + if sc.(libcommon.Address) != zeroAddr { // Sender address can never be zero in a transaction with a valid signer + return sc.(libcommon.Address), nil + } } addr, err := signer.Sender(tx) if err != nil { diff --git a/core/types/legacy_tx.go b/core/types/legacy_tx.go index 6fed058151b..c85ceed1cc2 100644 --- a/core/types/legacy_tx.go +++ b/core/types/legacy_tx.go @@ -436,7 +436,10 @@ func (tx *LegacyTx) GetChainID() *uint256.Int { func (tx *LegacyTx) Sender(signer Signer) (libcommon.Address, error) { if sc := tx.from.Load(); sc != nil { - return sc.(libcommon.Address), nil + zeroAddr := libcommon.Address{} + if sc.(libcommon.Address) != zeroAddr { // Sender address can never be zero in a transaction with a valid signer + return sc.(libcommon.Address), nil + } } addr, err := signer.Sender(tx) if err != nil { diff --git a/erigon-lib/diagnostics/client.go b/erigon-lib/diagnostics/client.go index ecadc345126..5e0ca6a5c4f 100644 --- a/erigon-lib/diagnostics/client.go +++ b/erigon-lib/diagnostics/client.go @@ -3,8 +3,12 @@ package diagnostics import ( "context" "net/http" + "os" + "os/signal" "path/filepath" "sync" + "syscall" + "time" "github.com/c2h5oh/datasize" "golang.org/x/sync/semaphore" @@ -101,8 +105,59 @@ func (d *DiagnosticClient) Setup() { d.setupBodiesDiagnostics(rootCtx) d.setupResourcesUsageDiagnostics(rootCtx) d.setupSpeedtestDiagnostics(rootCtx) + d.runSaveProcess(rootCtx) + d.runStopNodeListener(rootCtx) //d.logDiagMsgs() + +} + +func (d *DiagnosticClient) runStopNodeListener(rootCtx context.Context) { + go func() { + ch := make(chan os.Signal, 1) + signal.Notify(ch, os.Interrupt, syscall.SIGTERM) + select { + case <-ch: + d.SaveData() + case <-rootCtx.Done(): + } + }() +} + +// Save diagnostic data by time interval to reduce save events +func (d *DiagnosticClient) runSaveProcess(rootCtx context.Context) { + ticker := time.NewTicker(5 * time.Minute) + go func() { + for { + select { + case <-ticker.C: + d.SaveData() + case <-rootCtx.Done(): + ticker.Stop() + return + } + } + }() +} + +func (d *DiagnosticClient) SaveData() { + var funcs []func(tx kv.RwTx) error + funcs = append(funcs, SnapshotDownloadUpdater(d.syncStats.SnapshotDownload), StagesListUpdater(d.syncStages), SnapshotIndexingUpdater(d.syncStats.SnapshotIndexing)) + + err := d.db.Update(d.ctx, func(tx kv.RwTx) error { + for _, updater := range funcs { + updErr := updater(tx) + if updErr != nil { + return updErr + } + } + + return nil + }) + + if err != nil { + log.Warn("Failed to save diagnostics data", "err", err) + } } /*func (d *DiagnosticClient) logDiagMsgs() { diff --git a/erigon-lib/diagnostics/entities.go b/erigon-lib/diagnostics/entities.go index 5eaea58f081..e9200bf25bc 100644 --- a/erigon-lib/diagnostics/entities.go +++ b/erigon-lib/diagnostics/entities.go @@ -115,8 +115,9 @@ type SegmentPeer struct { } type SnapshotIndexingStatistics struct { - Segments []SnapshotSegmentIndexingStatistics `json:"segments"` - TimeElapsed float64 `json:"timeElapsed"` + Segments []SnapshotSegmentIndexingStatistics `json:"segments"` + TimeElapsed float64 `json:"timeElapsed"` + IndexingFinished bool `json:"indexingFinished"` } type SnapshotSegmentIndexingStatistics struct { diff --git a/erigon-lib/diagnostics/snapshots.go b/erigon-lib/diagnostics/snapshots.go index f042510c6d4..85579efebaa 100644 --- a/erigon-lib/diagnostics/snapshots.go +++ b/erigon-lib/diagnostics/snapshots.go @@ -49,6 +49,7 @@ func (d *DiagnosticClient) runSnapshotListener(rootCtx context.Context) { d.syncStats.SnapshotDownload.Sys = info.Sys d.syncStats.SnapshotDownload.DownloadFinished = info.DownloadFinished d.syncStats.SnapshotDownload.TorrentMetadataReady = info.TorrentMetadataReady + d.mu.Unlock() downloadedPercent := getPercentDownloaded(info.Downloaded, info.Total) remainingBytes := info.Total - info.Downloaded @@ -61,15 +62,8 @@ func (d *DiagnosticClient) runSnapshotListener(rootCtx context.Context) { Progress: downloadedPercent, }, "Downloading snapshots") - if err := d.db.Update(d.ctx, SnapshotDownloadUpdater(d.syncStats.SnapshotDownload)); err != nil { - log.Error("[Diagnostics] Failed to update snapshot download info", "err", err) - } - - d.saveSyncStagesToDB() - - d.mu.Unlock() - - if d.snapshotStageFinished() { + if info.DownloadFinished { + d.SaveData() return } } @@ -88,24 +82,17 @@ func getPercentDownloaded(downloaded, total uint64) string { } func (d *DiagnosticClient) updateSnapshotStageStats(stats SyncStageStats, subStageInfo string) { + d.mu.Lock() + defer d.mu.Unlock() idxs := d.getCurrentSyncIdxs() if idxs.Stage == -1 || idxs.SubStage == -1 { - log.Warn("[Diagnostics] Can't find running stage or substage while updating Snapshots stage stats.", "stages:", d.syncStages, "stats:", stats, "subStageInfo:", subStageInfo) + log.Debug("[Diagnostics] Can't find running stage or substage while updating Snapshots stage stats.", "stages:", d.syncStages, "stats:", stats, "subStageInfo:", subStageInfo) return } d.syncStages[idxs.Stage].SubStages[idxs.SubStage].Stats = stats } -func (d *DiagnosticClient) snapshotStageFinished() bool { - idx := d.getCurrentSyncIdxs() - if idx.Stage > 0 { - return true - } else { - return false - } -} - func (d *DiagnosticClient) runSegmentDownloadingListener(rootCtx context.Context) { go func() { ctx, ch, closeChannel := Context[SegmentDownloadStatistics](rootCtx, 1) @@ -132,11 +119,6 @@ func (d *DiagnosticClient) runSegmentDownloadingListener(rootCtx context.Context } else { d.syncStats.SnapshotDownload.SegmentsDownloading[info.Name] = info } - - if err := d.db.Update(d.ctx, SnapshotDownloadUpdater(d.syncStats.SnapshotDownload)); err != nil { - log.Error("[Diagnostics] Failed to update snapshot download info", "err", err) - } - d.mu.Unlock() } } @@ -155,8 +137,11 @@ func (d *DiagnosticClient) runSegmentIndexingListener(rootCtx context.Context) { return case info := <-ch: d.addOrUpdateSegmentIndexingState(info) - if err := d.db.Update(d.ctx, SnapshotIndexingUpdater(d.syncStats.SnapshotIndexing)); err != nil { - log.Error("[Diagnostics] Failed to update snapshot indexing info", "err", err) + d.updateIndexingStatus() + + if d.syncStats.SnapshotIndexing.IndexingFinished { + d.SaveData() + return } } } @@ -192,16 +177,33 @@ func (d *DiagnosticClient) runSegmentIndexingFinishedListener(rootCtx context.Co }) } - if err := d.db.Update(d.ctx, SnapshotIndexingUpdater(d.syncStats.SnapshotIndexing)); err != nil { - log.Error("[Diagnostics] Failed to update snapshot indexing info", "err", err) - } - d.mu.Unlock() + + d.updateIndexingStatus() } } }() } +func (d *DiagnosticClient) updateIndexingStatus() { + totalProgressPercent := 0 + for _, seg := range d.syncStats.SnapshotIndexing.Segments { + totalProgressPercent += seg.Percent + } + + totalProgress := totalProgressPercent / len(d.syncStats.SnapshotIndexing.Segments) + + d.updateSnapshotStageStats(SyncStageStats{ + TimeElapsed: SecondsToHHMMString(uint64(d.syncStats.SnapshotIndexing.TimeElapsed)), + TimeLeft: "unknown", + Progress: fmt.Sprintf("%d%%", totalProgress), + }, "Indexing snapshots") + + if totalProgress >= 100 { + d.syncStats.SnapshotIndexing.IndexingFinished = true + } +} + func (d *DiagnosticClient) addOrUpdateSegmentIndexingState(upd SnapshotIndexingStatistics) { d.mu.Lock() defer d.mu.Unlock() @@ -227,19 +229,6 @@ func (d *DiagnosticClient) addOrUpdateSegmentIndexingState(upd SnapshotIndexingS } d.syncStats.SnapshotIndexing.TimeElapsed = upd.TimeElapsed - - totalProgress := 0 - for _, seg := range d.syncStats.SnapshotIndexing.Segments { - totalProgress += seg.Percent - } - - d.updateSnapshotStageStats(SyncStageStats{ - TimeElapsed: SecondsToHHMMString(uint64(upd.TimeElapsed)), - TimeLeft: "unknown", - Progress: fmt.Sprintf("%d%%", totalProgress/len(d.syncStats.SnapshotIndexing.Segments)), - }, "Indexing snapshots") - - d.saveSyncStagesToDB() } func (d *DiagnosticClient) runSnapshotFilesListListener(rootCtx context.Context) { diff --git a/erigon-lib/diagnostics/stages.go b/erigon-lib/diagnostics/stages.go index bc7670609e2..47bae6d807c 100644 --- a/erigon-lib/diagnostics/stages.go +++ b/erigon-lib/diagnostics/stages.go @@ -100,11 +100,7 @@ func (d *DiagnosticClient) runSyncStagesListListener(rootCtx context.Context) { case <-rootCtx.Done(): return case info := <-ch: - d.mu.Lock() d.SetStagesList(info.StagesList) - d.mu.Unlock() - - d.saveSyncStagesToDB() } } }() @@ -121,11 +117,7 @@ func (d *DiagnosticClient) runCurrentSyncStageListener(rootCtx context.Context) case <-rootCtx.Done(): return case info := <-ch: - d.mu.Lock() d.SetCurrentSyncStage(info) - d.mu.Unlock() - - d.saveSyncStagesToDB() } } }() @@ -142,11 +134,7 @@ func (d *DiagnosticClient) runCurrentSyncSubStageListener(rootCtx context.Contex case <-rootCtx.Done(): return case info := <-ch: - d.mu.Lock() d.SetCurrentSyncSubStage(info) - d.mu.Unlock() - - d.saveSyncStagesToDB() } } }() @@ -163,22 +151,12 @@ func (d *DiagnosticClient) runSubStageListener(rootCtx context.Context) { case <-rootCtx.Done(): return case info := <-ch: - d.mu.Lock() d.SetSubStagesList(info.Stage, info.List) - d.mu.Unlock() - - d.saveSyncStagesToDB() } } }() } -func (d *DiagnosticClient) saveSyncStagesToDB() { - if err := d.db.Update(d.ctx, StagesListUpdater(d.syncStages)); err != nil { - log.Error("[Diagnostics] Failed to update stages list", "err", err) - } -} - func (d *DiagnosticClient) getCurrentSyncIdxs() CurrentSyncStagesIdxs { currentIdxs := CurrentSyncStagesIdxs{ Stage: -1, @@ -202,12 +180,17 @@ func (d *DiagnosticClient) getCurrentSyncIdxs() CurrentSyncStagesIdxs { } func (d *DiagnosticClient) SetStagesList(stages []SyncStage) { + d.mu.Lock() + defer d.mu.Unlock() + if len(d.syncStages) != len(stages) { d.syncStages = stages } } func (d *DiagnosticClient) SetSubStagesList(stageId string, subStages []SyncSubStage) { + d.mu.Lock() + defer d.mu.Unlock() for idx, stage := range d.syncStages { if stage.ID == stageId { if len(d.syncStages[idx].SubStages) != len(subStages) { @@ -219,6 +202,8 @@ func (d *DiagnosticClient) SetSubStagesList(stageId string, subStages []SyncSubS } func (d *DiagnosticClient) SetCurrentSyncStage(css CurrentSyncStage) { + d.mu.Lock() + defer d.mu.Unlock() isSet := false for idx, stage := range d.syncStages { if !isSet { @@ -246,6 +231,9 @@ func (d *DiagnosticClient) setSubStagesState(stadeIdx int, state StageState) { } func (d *DiagnosticClient) SetCurrentSyncSubStage(css CurrentSyncSubStage) { + d.mu.Lock() + defer d.mu.Unlock() + for idx, stage := range d.syncStages { if stage.State == Running { for subIdx, subStage := range stage.SubStages { diff --git a/erigon-lib/diagnostics/sys_info.go b/erigon-lib/diagnostics/sys_info.go index b870e649324..68a7ce7d4c1 100644 --- a/erigon-lib/diagnostics/sys_info.go +++ b/erigon-lib/diagnostics/sys_info.go @@ -20,16 +20,23 @@ var ( func (d *DiagnosticClient) setupSysInfoDiagnostics() { sysInfo := GetSysInfo(d.dataDirPath) - if err := d.db.Update(d.ctx, RAMInfoUpdater(sysInfo.RAM)); err != nil { - log.Error("[Diagnostics] Failed to update RAM info", "err", err) - } - if err := d.db.Update(d.ctx, CPUInfoUpdater(sysInfo.CPU)); err != nil { - log.Error("[Diagnostics] Failed to update CPU info", "err", err) - } + var funcs []func(tx kv.RwTx) error + funcs = append(funcs, RAMInfoUpdater(sysInfo.RAM), CPUInfoUpdater(sysInfo.CPU), DiskInfoUpdater(sysInfo.Disk)) - if err := d.db.Update(d.ctx, DiskInfoUpdater(sysInfo.Disk)); err != nil { - log.Error("[Diagnostics] Failed to update Disk info", "err", err) + err := d.db.Update(d.ctx, func(tx kv.RwTx) error { + for _, updater := range funcs { + updErr := updater(tx) + if updErr != nil { + return updErr + } + } + + return nil + }) + + if err != nil { + log.Warn("[Diagnostics] Failed to update system info", "err", err) } d.mu.Lock() diff --git a/erigon-lib/downloader/downloader.go b/erigon-lib/downloader/downloader.go index fb44565afe0..d21fae5e741 100644 --- a/erigon-lib/downloader/downloader.go +++ b/erigon-lib/downloader/downloader.go @@ -811,6 +811,19 @@ func (d *Downloader) mainLoop(silent bool) error { for _, t := range d.torrentClient.Torrents() { if urls, ok := d.webseeds.ByFileName(t.Name()); ok { + // if we have created a torrent, but it has no info, assume that the + // webseed download either has not been called yet or has failed and + // try again here - otherwise the torrent will be left with no info + if t.Info() == nil { + ts, ok, err := d.webseeds.DownloadAndSaveTorrentFile(d.ctx, t.Name()) + if ok && err == nil { + _, _, err = addTorrentFile(d.ctx, ts, d.torrentClient, d.db, d.webseeds) + if err != nil { + continue + } + } + } + t.AddWebSeeds(urls) } } diff --git a/erigon-lib/txpool/txpoolcfg/txpoolcfg.go b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go index ccc275df969..18d293e7d2c 100644 --- a/erigon-lib/txpool/txpoolcfg/txpoolcfg.go +++ b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go @@ -31,7 +31,7 @@ import ( ) // BorDefaultTxPoolPriceLimit defines the minimum gas price limit for bor to enforce txs acceptance into the pool. -const BorDefaultTxPoolPriceLimit = 30 * common.GWei +const BorDefaultTxPoolPriceLimit = 25 * common.GWei type Config struct { DBDir string diff --git a/eth/backend.go b/eth/backend.go index e03130b9aa5..4385a968f5e 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -1700,17 +1700,19 @@ func (s *Ethereum) DataDir() string { return s.config.Dirs.DataDir } -// setBorDefaultMinerGasPrice enforces Miner.GasPrice to be equal to BorDefaultMinerGasPrice (30gwei by default) +// setBorDefaultMinerGasPrice enforces Miner.GasPrice to be equal to BorDefaultMinerGasPrice (25gwei by default) +// only for polygon amoy network. func setBorDefaultMinerGasPrice(chainConfig *chain.Config, config *ethconfig.Config, logger log.Logger) { - if chainConfig.Bor != nil && (config.Miner.GasPrice == nil || config.Miner.GasPrice.Cmp(ethconfig.BorDefaultMinerGasPrice) != 0) { + if chainConfig.Bor != nil && chainConfig.ChainID.Cmp(params.AmoyChainConfig.ChainID) == 0 && (config.Miner.GasPrice == nil || config.Miner.GasPrice.Cmp(ethconfig.BorDefaultMinerGasPrice) != 0) { logger.Warn("Sanitizing invalid bor miner gas price", "provided", config.Miner.GasPrice, "updated", ethconfig.BorDefaultMinerGasPrice) config.Miner.GasPrice = ethconfig.BorDefaultMinerGasPrice } } -// setBorDefaultTxPoolPriceLimit enforces MinFeeCap to be equal to BorDefaultTxPoolPriceLimit (30gwei by default) +// setBorDefaultTxPoolPriceLimit enforces MinFeeCap to be equal to BorDefaultTxPoolPriceLimit (25gwei by default) +// only for polygon amoy network. func setBorDefaultTxPoolPriceLimit(chainConfig *chain.Config, config txpoolcfg.Config, logger log.Logger) { - if chainConfig.Bor != nil && config.MinFeeCap != txpoolcfg.BorDefaultTxPoolPriceLimit { + if chainConfig.Bor != nil && chainConfig.ChainID.Cmp(params.AmoyChainConfig.ChainID) == 0 && config.MinFeeCap != txpoolcfg.BorDefaultTxPoolPriceLimit { logger.Warn("Sanitizing invalid bor min fee cap", "provided", config.MinFeeCap, "updated", txpoolcfg.BorDefaultTxPoolPriceLimit) config.MinFeeCap = txpoolcfg.BorDefaultTxPoolPriceLimit } diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index f9ad2c7af07..7eb8cbeeba3 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -46,7 +46,7 @@ import ( ) // BorDefaultMinerGasPrice defines the minimum gas price for bor validators to mine a transaction. -var BorDefaultMinerGasPrice = big.NewInt(30 * params.GWei) +var BorDefaultMinerGasPrice = big.NewInt(25 * params.GWei) // FullNodeGPO contains default gasprice oracle settings for full node. var FullNodeGPO = gaspricecfg.Config{ diff --git a/eth/gasprice/gasprice.go b/eth/gasprice/gasprice.go index 83c252ec4e4..acc2fd7fdf4 100644 --- a/eth/gasprice/gasprice.go +++ b/eth/gasprice/gasprice.go @@ -26,6 +26,7 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/eth/gasprice/gaspricecfg" + "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/core/types" @@ -306,9 +307,10 @@ func (s bigIntArray) Len() int { return len(s) } func (s bigIntArray) Less(i, j int) bool { return s[i].Cmp(s[j]) < 0 } func (s bigIntArray) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -// setBorDefaultGpoIgnorePrice enforces gpo IgnorePrice to be equal to BorDefaultGpoIgnorePrice (30gwei by default) +// setBorDefaultGpoIgnorePrice enforces gpo IgnorePrice to be equal to BorDefaultGpoIgnorePrice (25gwei by default) +// only for polygon amoy network. func setBorDefaultGpoIgnorePrice(chainConfig *chain.Config, gasPriceConfig gaspricecfg.Config) { - if chainConfig.Bor != nil && gasPriceConfig.IgnorePrice != gaspricecfg.BorDefaultGpoIgnorePrice { + if chainConfig.Bor != nil && chainConfig.ChainID.Cmp(params.AmoyChainConfig.ChainID) == 0 && gasPriceConfig.IgnorePrice != gaspricecfg.BorDefaultGpoIgnorePrice { log.Warn("Sanitizing invalid bor gasprice oracle ignore price", "provided", gasPriceConfig.IgnorePrice, "updated", gaspricecfg.BorDefaultGpoIgnorePrice) gasPriceConfig.IgnorePrice = gaspricecfg.BorDefaultGpoIgnorePrice } diff --git a/eth/gasprice/gaspricecfg/gaspricecfg.go b/eth/gasprice/gaspricecfg/gaspricecfg.go index 4b538472d73..39356c30a36 100644 --- a/eth/gasprice/gaspricecfg/gaspricecfg.go +++ b/eth/gasprice/gaspricecfg/gaspricecfg.go @@ -9,7 +9,7 @@ import ( var DefaultIgnorePrice = big.NewInt(2 * params.Wei) // BorDefaultGpoIgnorePrice defines the minimum gas price below which bor gpo will ignore transactions. -var BorDefaultGpoIgnorePrice = big.NewInt(30 * params.Wei) +var BorDefaultGpoIgnorePrice = big.NewInt(25 * params.Wei) var ( DefaultMaxPrice = big.NewInt(500 * params.GWei) diff --git a/eth/tracers/internal/tracetest/calltrace_test.go b/eth/tracers/internal/tracetest/calltrace_test.go index 9e05252bc9a..1ace9cafaf5 100644 --- a/eth/tracers/internal/tracetest/calltrace_test.go +++ b/eth/tracers/internal/tracetest/calltrace_test.go @@ -32,7 +32,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" @@ -53,6 +52,7 @@ type callContext struct { Difficulty *math.HexOrDecimal256 `json:"difficulty"` Time math.HexOrDecimal64 `json:"timestamp"` GasLimit math.HexOrDecimal64 `json:"gasLimit"` + BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` Miner libcommon.Address `json:"miner"` } @@ -132,41 +132,37 @@ func testCallTracer(tracerName string, dirPath string, t *testing.T) { t.Fatalf("failed to parse testcase input: %v", err) } // Configure a blockchain with the given prestate - var ( - signer = types.MakeSigner(test.Genesis.Config, uint64(test.Context.Number), uint64(test.Context.Time)) - origin, _ = signer.Sender(tx) - txContext = evmtypes.TxContext{ - Origin: origin, - GasPrice: tx.GetPrice(), - } - context = evmtypes.BlockContext{ - CanTransfer: core.CanTransfer, - Transfer: core.Transfer, - Coinbase: test.Context.Miner, - BlockNumber: uint64(test.Context.Number), - Time: uint64(test.Context.Time), - Difficulty: (*big.Int)(test.Context.Difficulty), - GasLimit: uint64(test.Context.GasLimit), - } - rules = test.Genesis.Config.Rules(context.BlockNumber, context.Time) - ) + signer := types.MakeSigner(test.Genesis.Config, uint64(test.Context.Number), uint64(test.Context.Time)) + context := evmtypes.BlockContext{ + CanTransfer: core.CanTransfer, + Transfer: core.Transfer, + Coinbase: test.Context.Miner, + BlockNumber: uint64(test.Context.Number), + Time: uint64(test.Context.Time), + Difficulty: (*big.Int)(test.Context.Difficulty), + GasLimit: uint64(test.Context.GasLimit), + } + if test.Context.BaseFee != nil { + context.BaseFee, _ = uint256.FromBig((*big.Int)(test.Context.BaseFee)) + } + rules := test.Genesis.Config.Rules(context.BlockNumber, context.Time) + m := mock.Mock(t) dbTx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) defer dbTx.Rollback() - statedb, _ := tests.MakePreState(rules, dbTx, test.Genesis.Alloc, uint64(test.Context.Number)) - if test.Genesis.BaseFee != nil { - context.BaseFee, _ = uint256.FromBig(test.Genesis.BaseFee) - } + statedb, err := tests.MakePreState(rules, dbTx, test.Genesis.Alloc, uint64(test.Context.Number)) + require.NoError(t, err) tracer, err := tracers.New(tracerName, new(tracers.Context), test.TracerConfig) if err != nil { t.Fatalf("failed to create call tracer: %v", err) } - evm := vm.NewEVM(context, txContext, statedb, test.Genesis.Config, vm.Config{Debug: true, Tracer: tracer}) - msg, err := tx.AsMessage(*signer, test.Genesis.BaseFee, rules) + msg, err := tx.AsMessage(*signer, (*big.Int)(test.Context.BaseFee), rules) if err != nil { t.Fatalf("failed to prepare transaction for tracing: %v", err) } + txContext := core.NewEVMTxContext(msg) + evm := vm.NewEVM(context, txContext, statedb, test.Genesis.Config, vm.Config{Debug: true, Tracer: tracer}) vmRet, err := core.ApplyMessage(evm, msg, new(core.GasPool).AddGas(tx.GetGas()).AddBlobGas(tx.GetBlobGas()), true /* refunds */, false /* gasBailout */) if err != nil { t.Fatalf("failed to execute transaction: %v", err) @@ -182,8 +178,10 @@ func testCallTracer(tracerName string, dirPath string, t *testing.T) { // This is a tweak to make it deterministic. Can be removed when // we remove the legacy tracer. var x callTrace - json.Unmarshal(res, &x) - res, _ = json.Marshal(x) + err = json.Unmarshal(res, &x) + require.NoError(t, err) + res, err = json.Marshal(x) + require.NoError(t, err) } want, err := json.Marshal(test.Result) if err != nil { diff --git a/eth/tracers/internal/tracetest/prestate_test.go b/eth/tracers/internal/tracetest/prestate_test.go index 5148c3bcbb8..c6a3cfcfe06 100644 --- a/eth/tracers/internal/tracetest/prestate_test.go +++ b/eth/tracers/internal/tracetest/prestate_test.go @@ -25,10 +25,10 @@ import ( "testing" "github.com/holiman/uint256" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/stretchr/testify/require" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" @@ -97,41 +97,35 @@ func testPrestateDiffTracer(tracerName string, dirPath string, t *testing.T) { t.Fatalf("failed to parse testcase input: %v", err) } // Configure a blockchain with the given prestate - var ( - signer = types.MakeSigner(test.Genesis.Config, uint64(test.Context.Number), uint64(test.Context.Time)) - origin, _ = signer.Sender(tx) - txContext = evmtypes.TxContext{ - Origin: origin, - GasPrice: tx.GetFeeCap(), - } - context = evmtypes.BlockContext{ - CanTransfer: core.CanTransfer, - Transfer: core.Transfer, - Coinbase: test.Context.Miner, - BlockNumber: uint64(test.Context.Number), - Time: uint64(test.Context.Time), - Difficulty: (*big.Int)(test.Context.Difficulty), - GasLimit: uint64(test.Context.GasLimit), - } - rules = test.Genesis.Config.Rules(context.BlockNumber, context.Time) - ) + signer := types.MakeSigner(test.Genesis.Config, uint64(test.Context.Number), uint64(test.Context.Time)) + context := evmtypes.BlockContext{ + CanTransfer: core.CanTransfer, + Transfer: core.Transfer, + Coinbase: test.Context.Miner, + BlockNumber: uint64(test.Context.Number), + Time: uint64(test.Context.Time), + Difficulty: (*big.Int)(test.Context.Difficulty), + GasLimit: uint64(test.Context.GasLimit), + } + if test.Context.BaseFee != nil { + context.BaseFee, _ = uint256.FromBig((*big.Int)(test.Context.BaseFee)) + } + rules := test.Genesis.Config.Rules(context.BlockNumber, context.Time) m := mock.Mock(t) dbTx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) defer dbTx.Rollback() statedb, _ := tests.MakePreState(rules, dbTx, test.Genesis.Alloc, context.BlockNumber) - if test.Genesis.BaseFee != nil { - context.BaseFee, _ = uint256.FromBig(test.Genesis.BaseFee) - } tracer, err := tracers.New(tracerName, new(tracers.Context), test.TracerConfig) if err != nil { t.Fatalf("failed to create call tracer: %v", err) } - evm := vm.NewEVM(context, txContext, statedb, test.Genesis.Config, vm.Config{Debug: true, Tracer: tracer}) - msg, err := tx.AsMessage(*signer, nil, rules) // BaseFee is set to nil and not to contet.BaseFee, to match the output to go-ethereum tests + msg, err := tx.AsMessage(*signer, (*big.Int)(test.Context.BaseFee), rules) if err != nil { t.Fatalf("failed to prepare transaction for tracing: %v", err) } + txContext := core.NewEVMTxContext(msg) + evm := vm.NewEVM(context, txContext, statedb, test.Genesis.Config, vm.Config{Debug: true, Tracer: tracer}) st := core.NewStateTransition(evm, msg, new(core.GasPool).AddGas(tx.GetGas()).AddBlobGas(tx.GetBlobGas())) if _, err = st.TransitionDb(true /* refunds */, false /* gasBailout */); err != nil { t.Fatalf("failed to execute transaction: %v", err) diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/call_tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json b/eth/tracers/internal/tracetest/testdata/call_tracer/call_tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json new file mode 100644 index 00000000000..2771786a560 --- /dev/null +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/call_tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json @@ -0,0 +1,455 @@ +{ + "genesis": { + "alloc": { + "0x0000000000000000000000000000000000000001": { + "balance": "0x2e0636ccb6044b740" + }, + "0x19c0976f590d67707e62397c87829d896dc0f1f1": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063626cb3c511610071578063626cb3c51461020b57806365fae35e146102555780639c52a7f114610299578063bf353dbb146102dd578063d4e8be8314610335578063d9638d3614610383576100b4565b80631a0b287e146100b957806329ae8114146100fb57806336569e77146101335780633b6631951461017d57806344e2a5a8146101ab5780635001f3b5146101ed575b600080fd5b6100f9600480360360608110156100cf57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506103cc565b005b6101316004803603604081101561011157600080fd5b8101908080359060200190929190803590602001909291905050506105f9565b005b61013b610786565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a96004803603602081101561019357600080fd5b81019080803590602001909291905050506107ac565b005b6101d7600480360360208110156101c157600080fd5b8101908080359060200190929190505050610946565b6040518082815260200191505060405180910390f35b6101f5610c35565b6040518082815260200191505060405180910390f35b610213610c3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102976004803603602081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c61565b005b6102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8f565b005b61031f600480360360208110156102f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebd565b6040518082815260200191505060405180910390f35b6103816004803603604081101561034b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed5565b005b6103af6004803603602081101561039957600080fd5b810190808035906020019092919050505061109c565b604051808381526020018281526020019250505060405180910390f35b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600084815260200190815260200160002060010154421461050b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4a75672f72686f2d6e6f742d757064617465640000000000000000000000000081525060200191505060405180910390fd5b7f6475747900000000000000000000000000000000000000000000000000000000821415610553578060016000858152602001908152602001600020600001819055506105c1565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f62617365000000000000000000000000000000000000000000000000000000008214156106e1578060048190555061074f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610860576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b600060016000838152602001908152602001600020905060008160000154146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4a75672f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce80000008160000181905550428160010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b600060016000838152602001908152602001600020600101544210156109d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4a75672f696e76616c69642d6e6f77000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b158015610a4a57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b505050506040513d6040811015610a7457600080fd5b810190808051906020019092919080519060200190929190505050915050610aeb610ae5610aba60045460016000888152602001908152602001600020600001546110c0565b600160008781526020019081526020016000206001015442036b033b2e3c9fd0803ce80000006110da565b826111a0565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b65337df84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b5986866111e5565b6040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bc957600080fd5b505af1158015610bdd573d6000803e3d6000fd5b50505050426001600085815260200190815260200160002060010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450919050565b60045481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f766f770000000000000000000000000000000000000000000000000000000000821415610ff75780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611065565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016020528060005260406000206000915090508060000154908060010154905082565b60008183019050828110156110d457600080fd5b92915050565b600083600081146111805760028406600081146110f9578592506110fd565b8392505b50600283046002850494505b841561117a57858602868782041461112057600080fd5b8181018181101561113057600080fd5b8581049750600287061561116d57878502858982041415891515161561115557600080fd5b8381018181101561116557600080fd5b878104965050505b5050600285049450611109565b50611198565b83600081146111925760009250611196565b8392505b505b509392505050565b6000818302905060008214806111be5750828282816111bb57fe5b04145b6111c757600080fd5b6b033b2e3c9fd0803ce800000081816111dc57fe5b04905092915050565b60008183039050600083121580156111fe575060008212155b61120757600080fd5b9291505056fea265627a7a723158201f0f7975dfa300ecdb0df09b00b4c72acd04d6776756f811d747fa04dd51ca1b64736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947015": "0x0000000000000000000000000000000000000000033b2e3ca65dca26e20d5eda", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947016": "0x0000000000000000000000000000000000000000000000000000000063d2ea77" + } + }, + "0x2f0b23f53734252bda2277357e97e1517d6b042a": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063957aa58c11610071578063957aa58c146101de5780639c52a7f1146101fc578063b3bcfa8214610240578063bf353dbb1461025e578063c5ce281e146102b6578063ef693bed146102d4576100a9565b806336569e77146100ae5780633b4da69f146100f857806365fae35e14610146578063692450091461018a5780637bd2bea714610194575b600080fd5b6100b6610322565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101446004803603604081101561010e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610348565b005b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106c3565b005b6101926107f1565b005b61019c6108e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e6610908565b6040518082815260200191505060405180910390f35b61023e6004803603602081101561021257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090e565b005b610248610a3c565b6040518082815260200191505060405180910390f35b6102a06004803603602081101561027457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a42565b6040518082815260200191505060405180910390f35b6102be610a5a565b6040518082815260200191505060405180910390f35b610320600480360360408110156102ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001600554146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b6000811215610437576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025484846040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156104ea57600080fd5b505af11580156104fe573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d602081101561060957600080fd5b810190808051906020019092919050505061068c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610777576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006005819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60045481565b60006020528060005260406000206000915090505481565b60025481565b7f8000000000000000000000000000000000000000000000000000000000000000811115610af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025433846000036040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bac57600080fd5b505af1158015610bc0573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050506040513d6020811015610c9757600080fd5b8101908080519060200190929190505050610d1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505056fea265627a7a72315820bfdfa122fe3ad43a5d779b939c506cae7507e0f5e807767f61193161f1c1e28664736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80637cdd3fde116100f9578063bb35783b11610097578063dc4d20fa11610071578063dc4d20fa1461096c578063f059212a146109b0578063f24e23eb14610a08578063f37ac61c14610a76576101c4565b8063bb35783b14610848578063bf353dbb146108b6578063d9638d361461090e576101c4565b80639c52a7f1116100d35780639c52a7f11461074a578063a3b22fc41461078e578063b65337df146107d2578063babe8a3f1461082a576101c4565b80637cdd3fde14610652578063870c616d146106aa578063957aa58c1461072c576101c4565b80634538c4eb11610166578063692450091161014057806369245009146104ac5780636c25b346146104b6578063760887031461050e5780637bab3f40146105b0576101c4565b80634538c4eb146103785780636111be2e146103f057806365fae35e14610468576101c4565b80632424be5c116101a25780632424be5c1461028b57806329ae8114146102f45780632d61a3551461032c5780633b6631951461034a576101c4565b80630dca59c1146101c95780631a0b287e146101e7578063214414d514610229575b600080fd5b6101d1610aa4565b6040518082815260200191505060405180910390f35b610227600480360360608110156101fd57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610aaa565b005b6102756004803603604081101561023f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d58565b6040518082815260200191505060405180910390f35b6102d7600480360360408110156102a157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7d565b604051808381526020018281526020019250505060405180910390f35b61032a6004803603604081101561030a57600080fd5b810190808035906020019092919080359060200190929190505050610dae565b005b610334610fb5565b6040518082815260200191505060405180910390f35b6103766004803603602081101561036057600080fd5b8101908080359060200190929190505050610fbb565b005b6103da6004803603604081101561038e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061115a565b6040518082815260200191505060405180910390f35b6104666004803603608081101561040657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061117f565b005b6104aa6004803603602081101561047e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611392565b005b6104b461153a565b005b6104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162d565b6040518082815260200191505060405180910390f35b6105ae600480360360c081101561052457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611645565b005b610650600480360360c08110156105c657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e31565b005b6106a86004803603606081101561066857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612130565b005b61072a600480360360a08110156106c057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506122cc565b005b610734612700565b6040518082815260200191505060405180910390f35b61078c6004803603602081101561076057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612706565b005b6107d0600480360360208110156107a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ae565b005b610828600480360360608110156107e857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612967565b005b610832612bac565b6040518082815260200191505060405180910390f35b6108b46004803603606081101561085e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bb2565b005b6108f8600480360360208110156108cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d80565b6040518082815260200191505060405180910390f35b61093a6004803603602081101561092457600080fd5b8101908080359060200190929190505050612d98565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6109ae6004803603602081101561098257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dce565b005b6109f2600480360360208110156109c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e88565b6040518082815260200191505060405180910390f35b610a7460048036036060811015610a1e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ea0565b005b610aa260048036036020811015610a8c57600080fd5b81019080803590602001909291905050506130ca565b005b60075481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f73706f7400000000000000000000000000000000000000000000000000000000821415610c1e57806002600085815260200190815260200160002060020181905550610d1e565b7f6c696e6500000000000000000000000000000000000000000000000000000000821415610c6657806002600085815260200190815260200160002060030181905550610d1d565b7f6475737400000000000000000000000000000000000000000000000000000000821415610cae57806002600085815260200190815260200160002060040181905550610d1c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5b5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f4c696e6500000000000000000000000000000000000000000000000000000000821415610f0e5780600981905550610f7c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050565b60085481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461106f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006002600083815260200190815260200160002060010154146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce800000060026000838152602001908152602001600020600101819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b6001602052816000526040600020602052806000526040600020600091509150505481565b6111898333613244565b6111fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6112556004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b6004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113036004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b6004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a54146114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6000600a819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450565b60056020528060005260406000206000915090505481565b6001600a54146116bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6116c5613437565b6003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905061173e613451565b600260008981526020019081526020016000206040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905060008160200151141561180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f696c6b2d6e6f742d696e69740000000000000000000000000000000081525060200191505060405180910390fd5b611819826000015185613338565b826000018181525050611830826020015184613338565b826020018181525050611847816000015184613338565b8160000181815250506000611860826020015185613377565b90506000611876836020015185602001516133b2565b905061188460075483613338565b6007819055506118c060008613156118bb85606001516118ac876000015188602001516133b2565b111560095460075411156133de565b6133eb565b611932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f6365696c696e672d657863656564656400000000000000000000000081525060200191505060405180910390fd5b611961611947600087131560008912156133de565b611959866000015186604001516133b2565b8311156133eb565b6119d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d73616665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6119f76119e8600087131560008912156133de565b6119f28b33613244565b6133eb565b611a69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7500000000000000000000000000000081525060200191505060405180910390fd5b611a806000871315611a7b8a33613244565b6133eb565b611af2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7600000000000000000000000000000081525060200191505060405180910390fd5b611b096000861215611b048933613244565b6133eb565b611b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7700000000000000000000000000000081525060200191505060405180910390fd5b611b93600085602001511484608001518310156133eb565b611c05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f5661742f6475737400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611c5f600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054876133f8565b600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfc600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613338565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600360008c815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015590505082600260008c81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008981526020019081526020016000209050611f5e826000015485613338565b8260000181905550611f74826001015484613338565b8260010181905550611f8a816000015484613338565b81600001819055506000611fa2826001015485613377565b9050611ffe600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866133f8565b600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061209b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826133f8565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ea600854826133f8565b6008819055505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146121e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b61223e6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006003600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006003600088815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002600089815260200190815260200160002090506123998360000154866133f8565b83600001819055506123af8360010154856133f8565b83600101819055506123c5826000015486613338565b82600001819055506123db826001015485613338565b826001018190555060006123f7846001015483600101546133b2565b9050600061240d846001015484600101546133b2565b905061242b61241c8a33613244565b6124268a33613244565b6133de565b61249d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6124af856000015484600201546133b2565b821115612524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d7372630000000000000000000000000000000081525060200191505060405180910390fd5b612536846000015484600201546133b2565b8111156125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d6473740000000000000000000000000000000081525060200191505060405180910390fd5b6125c3836004015483101560008760010154146133eb565b612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d737263000000000000000000000000000000000000000081525060200191505060405180910390fd5b61264d836004015482101560008660010154146133eb565b6126bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d647374000000000000000000000000000000000000000081525060200191505060405180910390fd5b50505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050505050565b600a5481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146127ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008581526020019081526020016000209050612ab8816001015483613338565b81600101819055506000612ad0826000015484613377565b9050612b1b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6a60075482613338565b60078190555050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60095481565b612bbc8333613244565b612c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b612c77600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d03600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006020528060005260406000206000915090505481565b60026020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60066020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b612f9d600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613029600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130786008548261331e565b60088190555061308a6007548261331e565b6007819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6000339050613118600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a4600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131f360085483613304565b60088190555061320560075483613304565b600781905550505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60006132fc8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161460018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146133eb565b905092915050565b600082828403915081111561331857600080fd5b92915050565b600082828401915081101561333257600080fd5b92915050565b6000818301905060008212158061334f5750828111155b61335857600080fd5b6000821315806133685750828110155b61337157600080fd5b92915050565b60008183029050600083121561338c57600080fd5b60008214806133a35750828282816133a057fe5b05145b6133ac57600080fd5b92915050565b6000808214806133cf57508282838502925082816133cc57fe5b04145b6133d857600080fd5b92915050565b6000818316905092915050565b6000818317905092915050565b6000818303905060008213158061340f5750828111155b61341857600080fd5b6000821215806134285750828110155b61343157600080fd5b92915050565b604051806040016040528060008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fea265627a7a723158208a74d6db3d5b0eba259e13b86f201f0fda2be3ffedbc0b4f90a67d87593f4de764736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000003d3d67f3d7d8a25bc1c037c1740d24aa03e289b6252300", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x0000000000000000004b9f290913b5bf9a382b54d06234482cf1f7e0cfda70ab", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x099e89cca7ffe1d2fcd345b67a28e02e04474aa4d90f285fcc24596ad4e02166": "0x000000000000000000071cbf8d399b90123a8d1e02f6f6534683a51cf0ea7930", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece131": "0x00000000000000000000000000000000000000000000000100bd33fb98ba0000", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece132": "0x0000000000000000000000000000000000000000000002ee2ccae7afb419fb3c", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bb": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e284356", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bc": "0x00000000000000000000000000000000000000000380ccf64585d61dfc80728d", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bd": "0x000000000000000000000000000000000000000dee286c5d5714c921f9f6469e", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603be": "0x00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de52", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bf": "0x00000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000", + "0x6e75488ddfb650532684741eb749ac29db15c8cd59d7771c466155b09612ad73": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x76d2f8c9c940909546724749d054410d1b135d6ef5a8bfd0282076cddf92341a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x7adce341587c7ad28f80a9ef54da0d2f0bfd917b11856be2d246a8c66685b1a0": "0x00000000000000000035b22aa5a2c02ba12ba32fd0477f78170a5fa138000000", + "0x7dd215c1c7bcd252f448890ba9ae168596a6af47f2681a1a28e1bf27b5852a96": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8", + "0x8ac5aa31fc59e05e568a0740a98215030c52ef77851d6455526a8fb927e5faef": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9b06c498c1411f7819ef58913eda44a81e9bfe5678cc341ce6899b997142b937": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9cba659f061d332adc7f618d3ee453592937192458a7ec7299d1231dedc537b8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc450373d07c0691a78dacf78508240f60ba6e2a98fe98dd05ed39cf53e29ac3d": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x519e19eac9ead404343c68224dd2a22c5c25f992": { + "balance": "0x2fa15b25b57acff", + "nonce": "10734" + }, + "0x5ef30b9986345249bc32d8928b7ee64de9435e39": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806380c9419e116100b8578063b3d178f21161007c578063b3d178f2146106f4578063b68f400414610712578063e50322a214610760578063f9f30db614610798578063fc73d771146107f0578063fcafcc681461084857610142565b806380c9419e146105155780638161b1201461055e5780639a816f7d146105cc5780639bb8f83814610624578063b2b192e61461067c57610142565b80632c2cb9fd1161010a5780632c2cb9fd1461031557806336569e771461035757806345e6bdcd146103a15780635aebb460146103e35780636090dec5146104655780637e348b7d146104c757610142565b806305d85eda146101475780630b63fb621461019f57806318af4d60146101f75780631b0dbf72146102595780632726b073146102a7575b600080fd5b6101896004803603602081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610896565b6040518082815260200191505060405180910390f35b6101f5600480360360608110156101b557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ae565b005b6102576004803603608081101561020d57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b19565b005b6102a56004803603604081101561026f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e22565b005b6102d3600480360360208110156102bd57600080fd5b81019080803590602001909291905050506113b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103416004803603602081101561032b57600080fd5b81019080803590602001909291905050506113ea565b6040518082815260200191505060405180910390f35b61035f611402565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e1600480360360608110156103b757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611427565b005b61044f600480360360608110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611784565b6040518082815260200191505060405180910390f35b6104b16004803603604081101561047b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b6565b6040518082815260200191505060405180910390f35b610513600480360360408110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cac565b005b6105416004803603602081101561052b57600080fd5b810190808035906020019092919050505061220e565b604051808381526020018281526020019250505060405180910390f35b61058a6004803603602081101561057457600080fd5b8101908080359060200190929190505050612232565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61060e600480360360208110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612265565b6040518082815260200191505060405180910390f35b61067a6004803603606081101561063a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061227d565b005b6106de6004803603604081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612598565b6040518082815260200191505060405180910390f35b6106fc6125bd565b6040518082815260200191505060405180910390f35b61075e6004803603604081101561072857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125c3565b005b6107966004803603604081101561077657600080fd5b810190808035906020019092919080359060200190929190505050612648565b005b6107ee600480360360608110156107ae57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d22565b005b6108326004803603602081101561080657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613022565b6040518082815260200191505060405180910390f35b6108946004803603604081101561085e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061303a565b005b60086020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109dc57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b81600960006004600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c4757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610cb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e866002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061107957506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6110eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d604081101561120357600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886112b1876139ab565b6112ba876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561136457600080fd5b505af1158015611378573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061155557506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6115c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b60006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376088703600560008881526020019081526020016000205483848589896040518763ffffffff1660e01b8152600401808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b5050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600960205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561185a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7573722d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b61186760015460016139c3565b6001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161189b906139f7565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156118ed573d6000803e3d6000fd5b5060026000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160046000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006001548152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a3e57600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b3e57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060015481526020019081526020016000206000018190555060015460036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b600154600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bce600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001548273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd6be0bc178658a382ff4f91c8c68b542aa6b71685b8fe427966b87745c3ea7a260405160405180910390a460015490505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45092915050565b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d6357506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f0357506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611f75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600088815260200190815260200160002054886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561203057600080fd5b505afa158015612044573d6000803e3d6000fd5b505050506040513d604081101561205a57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d600560008881526020019081526020016000205488600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612108876139ab565b612111876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156121bb57600080fd5b505af11580156121cf573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60036020528060005260406000206000915090508060000154908060010154905082565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123ab57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b61241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e60056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b15801561254757600080fd5b505af115801561255b573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600a602052816000526040600020602052806000526040600020600091509150505481565b60015481565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061277657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6127e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061291657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6005600084815260200190815260200160002054600560008681526020019081526020016000205414612a23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6e6f6e2d6d61746368696e672d6364707300000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015612b1157600080fd5b505afa158015612b25573d6000803e3d6000fd5b505050506040513d6040811015612b3b57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612c1c876139ab565b612c25876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015612ccf57600080fd5b505af1158015612ce3573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612e5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612ec2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b6002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015612fd157600080fd5b505af1158015612fe5573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60066020528060005260406000206000915090505481565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061316857506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6131da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561327d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6473742d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b6004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6473742d616c72656164792d6f776e657200000000000000000000000000000081525060200191505060405180910390fd5b60006003600085815260200190815260200160002060000154146133b85760036000848152602001908152602001600020600101546003600060036000878152602001908152602001600020600001548152602001908152602001600020600101819055505b60006003600085815260200190815260200160002060010154146134225760036000848152602001908152602001600020600001546003600060036000878152602001908152602001600020600101548152602001908152602001600020600001819055506134b0565b6003600084815260200190815260200160002060000154600760006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156135b8576003600084815260200190815260200160002060010154600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613635600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139dd565b600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600085815260200190815260200160002060000181905550600060036000858152602001908152602001600020600101819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613815578260036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156138a25782600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613930600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600081905060008112156139be57600080fd5b919050565b60008282840191508110156139d757600080fd5b92915050565b60008282840391508111156139f157600080fd5b92915050565b61012480613a058339019056fe6080604052348015600f57600080fd5b5060405161012438038061012483398181016040526020811015603157600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1663a3b22fc4336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801560c057600080fd5b505af115801560d3573d6000803e3d6000fd5b5050505050603e806100e66000396000f3fe6080604052600080fdfea265627a7a7231582011d8228e4d52a33e72559199f2a9e6502500acb18f172cf552c647d56fee044f64736f6c634300050c0032a265627a7a723158206b3b639e0afdc17dc08b18e9de88cc23f7660f74f3b7b18d0cb4f00d516c544364736f6c634300050c0032", + "nonce": "30122", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x39283d02e250354521f59445ea551727c1b2713f6e01b3b151d3168c74288463": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x6b3785a4182d3401a98d077bae4c3646fcde354cc8e75c1f95de1faf7ff875c1": "0x000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "0xe91a1aec2b8c6704e98c22b374058d1324cfbce841779cb2a4d296942f0caf2f": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a" + } + }, + "0x6b175474e89094c44da98b954eedeac495271d0f": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637ecebe00116100b8578063a9059cbb1161007c578063a9059cbb146106b4578063b753a98c1461071a578063bb35783b14610768578063bf353dbb146107d6578063dd62ed3e1461082e578063f2d5d56b146108a657610142565b80637ecebe00146104a15780638fcbaf0c146104f957806395d89b411461059f5780639c52a7f1146106225780639dc29fac1461066657610142565b8063313ce5671161010a578063313ce567146102f25780633644e5151461031657806340c10f191461033457806354fd4d501461038257806365fae35e1461040557806370a082311461044957610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e57806330adf81f146102d4575b600080fd5b61014f6108f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061092d565b604051808215151515815260200191505060405180910390f35b610238610a1f565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a25565b604051808215151515815260200191505060405180910390f35b6102dc610f3a565b6040518082815260200191505060405180910390f35b6102fa610f61565b604051808260ff1660ff16815260200191505060405180910390f35b61031e610f66565b6040518082815260200191505060405180910390f35b6103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6c565b005b61038a611128565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ca5780820151818401526020810190506103af565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104476004803603602081101561041b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b005b61048b6004803603602081101561045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061128f565b6040518082815260200191505060405180910390f35b6104e3600480360360208110156104b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b6040518082815260200191505060405180910390f35b61059d600480360361010081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506112bf565b005b6105a76117fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e75780820151818401526020810190506105cc565b50505050905090810190601f1680156106145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106646004803603602081101561063857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611833565b005b6106b26004803603604081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611961565b005b610700600480360360408110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611df4565b604051808215151515815260200191505060405180910390f35b6107666004803603604081101561073057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e09565b005b6107d46004803603606081101561077e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e19565b005b610818600480360360208110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2a565b6040518082815260200191505060405180910390f35b6108906004803603604081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e42565b6040518082815260200191505060405180910390f35b6108f2600480360360408110156108bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e67565b005b6040518060400160405280600e81526020017f44616920537461626c65636f696e00000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60015481565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610adc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610bb457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610db25781600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b610d31600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dfb600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e87600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e91565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b81565b601281565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611020576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b611069600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e91565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110b860015482611e91565b6001819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b60006005547fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b8a8a8a8a8a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018215151515815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4461692f696e76616c69642d616464726573732d30000000000000000000000081525060200191505060405180910390fd5b60018185858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114e9573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f696e76616c69642d7065726d6974000000000000000000000000000081525060200191505060405180910390fd5b60008614806115a25750854211155b611614576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f7065726d69742d65787069726564000000000000000000000000000081525060200191505060405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505587146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4461692f696e76616c69642d6e6f6e636500000000000000000000000000000081525060200191505060405180910390fd5b6000856116e4576000611706565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b905080600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050505050505050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611aee57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611cec5780600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b611c6b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611d35600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8460015482611e77565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611e01338484610a25565b905092915050565b611e14338383610a25565b505050565b611e24838383610a25565b50505050565b60006020528060005260406000206000915090505481565b6003602052816000526040600020602052806000526040600020600091509150505481565b611e72823383610a25565b505050565b6000828284039150811115611e8b57600080fd5b92915050565b6000828284019150811015611ea557600080fd5b9291505056fea265627a7a72315820c0ae2c29860c0a59d5586a579abbcddfe4bcef0524a87301425cbc58c3e94e3164736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000109e3b852672498b65cb8fa1", + "0x9fa7d1a90466effd74b6142b5e6b4b076451f75604d0878dc681cb2014f26d08": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xa9b43d59829a0e23e9335ae57bfab96d4c0f7c384de723cf3c0a9a8dbd6d8b7e": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038": { + "balance": "0x0", + "code": "0x60806040526004361061023b5760003560e01c806396e8d72c1161012e578063c0791710116100ab578063e685cc041161006f578063e685cc0414610c7d578063ead6472914610cc9578063eb0b9a8514610d20578063ee28457614610d63578063fba7591d14610d9f5761023b565b8063c079171014610ab2578063c56167c614610b34578063cbd4be3f14610b77578063db802a3214610bdf578063e205c10814610c475761023b565b8063b50a5869116100f2578063b50a586914610949578063ba727a9514610984578063bcd6deec146109cb578063be5e6c0314610a1a578063beabacc814610a6f5761023b565b806396e8d72c146107f75780639f6f3d5b1461083c5780639f887fde1461088b578063a033df12146108c6578063a6add011146108f45761023b565b80634592aca7116101bc5780636ab6a491116101805780636ab6a4911461068c5780636d68b70b146106d55780637b5a3b43146107245780637bc3bd531461076d5780637df2eb25146107ac5761023b565b80634592aca71461051f578063493c2049146105625780634b666199146105ab5780635f6ef447146105f45780636aa3ee11146106375761023b565b80631d10f231116102035780631d10f231146103aa57806325cf37d0146103ed5780632958f8a5146104345780633e29e5651461048557806342dd11bb146104d65761023b565b8063036a23951461024057806308f00e34146102855780630aee8dec146102ce5780631558b048146103175780631c02d8461461035e575b600080fd5b34801561024c57600080fd5b506102836004803603606081101561026357600080fd5b506001600160a01b03813581169160208101359091169060400135610dee565b005b34801561029157600080fd5b50610283600480360360808110156102a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356111aa565b3480156102da57600080fd5b50610283600480360360808110156102f157600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611319565b34801561032357600080fd5b506102836004803603608081101561033a57600080fd5b506001600160a01b03813581169160208101359160408201351690606001356113f1565b610283600480360360c081101561037457600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a0013561145e565b3480156103b657600080fd5b50610283600480360360608110156103cd57600080fd5b506001600160a01b0381358116916020810135916040909101351661175d565b3480156103f957600080fd5b506102836004803603608081101561041057600080fd5b506001600160a01b03813581169160208101359160408201351690606001356117da565b34801561044057600080fd5b50610283600480360360a081101561045757600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160809091013516611833565b34801561049157600080fd5b50610283600480360360a08110156104a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611906565b3480156104e257600080fd5b50610283600480360360808110156104f957600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611b06565b34801561052b57600080fd5b506102836004803603606081101561054257600080fd5b506001600160a01b03813581169160208101359160409091013516611b69565b34801561056e57600080fd5b506102836004803603608081101561058557600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611bc9565b3480156105b757600080fd5b50610283600480360360808110156105ce57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611dbc565b34801561060057600080fd5b506102836004803603606081101561061757600080fd5b506001600160a01b03813581169160208101359091169060400135612195565b34801561064357600080fd5b5061067a6004803603606081101561065a57600080fd5b506001600160a01b038135811691602081013591604090910135166121f5565b60408051918252519081900360200190f35b34801561069857600080fd5b50610283600480360360808110156106af57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561227c565b3480156106e157600080fd5b50610283600480360360a08110156106f857600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356122fc565b34801561073057600080fd5b506102836004803603608081101561074757600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612677565b34801561077957600080fd5b506102836004803603606081101561079057600080fd5b506001600160a01b038135169060208101359060400135612685565b3480156107b857600080fd5b50610283600480360360808110156107cf57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156126d3565b34801561080357600080fd5b506102836004803603608081101561081a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356128e0565b34801561084857600080fd5b50610283600480360360a081101561085f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612936565b34801561089757600080fd5b50610283600480360360408110156108ae57600080fd5b506001600160a01b0381358116916020013516612bf7565b610283600480360360408110156108dc57600080fd5b506001600160a01b0381358116916020013516612c6b565b34801561090057600080fd5b50610283600480360360c081101561091757600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612e50565b34801561095557600080fd5b506102836004803603604081101561096c57600080fd5b506001600160a01b038135811691602001351661311f565b34801561099057600080fd5b50610283600480360360808110156109a757600080fd5b506001600160a01b0381358116916020810135916040820135169060600135613177565b3480156109d757600080fd5b50610283600480360360a08110156109ee57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356131d0565b348015610a2657600080fd5b50610283600480360360c0811015610a3d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135613463565b348015610a7b57600080fd5b5061028360048036036060811015610a9257600080fd5b506001600160a01b038135811691602081013590911690604001356137f9565b348015610abe57600080fd5b50610b11600480360360e0811015610ad557600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135613859565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610b4057600080fd5b5061028360048036036060811015610b5757600080fd5b506001600160a01b038135811691602081013590911690604001356139dc565b348015610b8357600080fd5b506102836004803603610100811015610b9b57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613be2565b348015610beb57600080fd5b5061067a6004803603610100811015610c0357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613edf565b61028360048036036060811015610c5d57600080fd5b506001600160a01b03813581169160208101359091169060400135613f0a565b61067a600480360360c0811015610c9357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a001356140e0565b348015610cd557600080fd5b50610283600480360360c0811015610cec57600080fd5b506001600160a01b0381358116916020810135821691604082013591606081013591608082013515159160a0013516614107565b348015610d2c57600080fd5b5061028360048036036060811015610d4357600080fd5b506001600160a01b038135811691602081013590911690604001356141db565b61028360048036036080811015610d7957600080fd5b506001600160a01b0381358116916020810135821691604082013591606001351661423b565b348015610dab57600080fd5b50610dd260048036036020811015610dc257600080fd5b50356001600160a01b031661430d565b604080516001600160a01b039092168252519081900360200190f35b6000836001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2957600080fd5b505afa158015610e3d573d6000803e3d6000fd5b505050506040513d6020811015610e5357600080fd5b505160408051632726b07360e01b81526004810185905290519192506000916001600160a01b03871691632726b073916024808301926020929190829003018186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6020811015610ecc57600080fd5b505160408051632c2cb9fd60e01b81526004810186905290519192506000916001600160a01b03881691632c2cb9fd916024808301926020929190829003018186803b158015610f1b57600080fd5b505afa158015610f2f573d6000803e3d6000fd5b505050506040513d6020811015610f4557600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b158015610f9957600080fd5b505afa158015610fad573d6000803e3d6000fd5b505050506040513d6040811015610fc357600080fd5b506020908101516040805163040b0d8960e51b81526004810189905290519193506000926001600160a01b038b1692638161b120926024808201939291829003018186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b505190506001600160a01b0381163014806110db5750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d60208110156110d557600080fd5b50516001145b1561110b576110f687856110f18888898961438a565b6139dc565b61110688876000856000036128e0565b6111a0565b61111c87306110f18830898961438a565b60408051637608870360e01b8152600481018590526001600160a01b0386811660248301523060448301819052606483015260006084830181905285810360a484015292519088169263760887039260c4808201939182900301818387803b15801561118757600080fd5b505af115801561119b573d6000803e3d6000fd5b505050505b5050505050505050565b6111b6848330846113f1565b6040805163ef693bed60e01b81523060048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50505050826001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561125757600080fd5b505af115801561126b573d6000803e3d6000fd5b505050506040513d602081101561128157600080fd5b505160408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611312573d6000803e3d6000fd5b5050505050565b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561136757600080fd5b505afa15801561137b573d6000803e3d6000fd5b505050506040513d602081101561139157600080fd5b50516001600160a01b0316146113e0576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484610dee565b50505050565b604080516313771f0760e31b8152600481018590526001600160a01b03848116602483015260448201849052915191861691639bb8f8389160648082019260009290919082900301818387803b15801561144a57600080fd5b505af11580156111a0573d6000803e3d6000fd5b6000866001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114a457600080fd5b505afa1580156114b8573d6000803e3d6000fd5b505050506040513d60208110156114ce57600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038a16916336569e77916004808301926020929190829003018186803b15801561151657600080fd5b505afa15801561152a573d6000803e3d6000fd5b505050506040513d602081101561154057600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038b1691632c2cb9fd916024808301926020929190829003018186803b15801561158f57600080fd5b505afa1580156115a3573d6000803e3d6000fd5b505050506040513d60208110156115b957600080fd5b505190506115c78784612c6b565b6115e789866115d534614558565b6115e2868d89888c6145a3565b6128e0565b6115fb8986306115f688614720565b6117da565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b15801561164b57600080fd5b505afa15801561165f573d6000803e3d6000fd5b505050506040513d602081101561167557600080fd5b50516116ec57816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156116d357600080fd5b505af11580156116e7573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561173a57600080fd5b505af115801561174e573d6000803e3d6000fd5b50505050505050505050505050565b826001600160a01b031663fcafcc6883836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b50505050505050565b60408051637cf986db60e11b8152600481018590526001600160a01b0384811660248301526044820184905291519186169163f9f30db69160648082019260009290919082900301818387803b15801561144a57600080fd5b806001600160a01b0316856001600160a01b0316638161b120856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561188157600080fd5b505afa158015611895573d6000803e3d6000fd5b505050506040513d60208110156118ab57600080fd5b50516001600160a01b0316146118fa576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b61131285858585611dbc565b611912843084846126d3565b846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561194b57600080fd5b505afa15801561195f573d6000803e3d6000fd5b505050506040513d602081101561197557600080fd5b505160408051632c2cb9fd60e01b81526004810186905290516001600160a01b039283169263760887039290891691632c2cb9fd91602480820192602092909190829003018186803b1580156119ca57600080fd5b505afa1580156119de573d6000803e3d6000fd5b505050506040513d60208110156119f457600080fd5b505160408051632726b07360e01b81526004810188905290516001600160a01b038a1691632726b073916024808301926020929190829003018186803b158015611a3d57600080fd5b505afa158015611a51573d6000803e3d6000fd5b505050506040513d6020811015611a6757600080fd5b50513080611a7d611a788b8a61473d565b614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050505050505050565b611b1b848330611b16878661473d565b6113f1565b6040805163ef693bed60e01b81523360048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561144a57600080fd5b826001600160a01b0316631b0dbf7283836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000846001600160a01b031663c4552791836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611c2157600080fd5b505afa158015611c35573d6000803e3d6000fd5b505050506040513d6020811015611c4b57600080fd5b505190506001600160a01b0381161580611cdb5750816001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca357600080fd5b505afa158015611cb7573d6000803e3d6000fd5b505050506040513d6020811015611ccd57600080fd5b50516001600160a01b031614155b15611db157813b8015611d29576040805162461bcd60e51b8152602060048201526011602482015270111cdd0b5a5ccb584b58dbdb9d1c9858dd607a1b604482015290519081900360640190fd5b856001600160a01b031663f3701da2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b505050506040513d6020811015611dab57600080fd5b50519150505b61131284848361175d565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015611df757600080fd5b505afa158015611e0b573d6000803e3d6000fd5b505050506040513d6020811015611e2157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03881691632726b073916024808301926020929190829003018186803b158015611e7057600080fd5b505afa158015611e84573d6000803e3d6000fd5b505050506040513d6020811015611e9a57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b03891691632c2cb9fd916024808301926020929190829003018186803b158015611ee957600080fd5b505afa158015611efd573d6000803e3d6000fd5b505050506040513d6020811015611f1357600080fd5b50516040805163040b0d8960e51b81526004810188905290519192506000916001600160a01b038a1691638161b120916024808301926020929190829003018186803b158015611f6257600080fd5b505afa158015611f76573d6000803e3d6000fd5b505050506040513d6020811015611f8c57600080fd5b505190506001600160a01b0381163014806120295750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b158015611ff957600080fd5b505afa15801561200d573d6000803e3d6000fd5b505050506040513d602081101561202357600080fd5b50516001145b156120cd576120398784876139dc565b611106888760006115e288896001600160a01b0316636c25b3468a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561209a57600080fd5b505afa1580156120ae573d6000803e3d6000fd5b505050506040513d60208110156120c457600080fd5b505189896147bc565b6120d88730876139dc565b836001600160a01b031663760887038385303060006121068b676765c793fa10079d601b1b8e028c8c6147bc565b6040518763ffffffff1660e01b815260040180878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561118757600080fd5b826001600160a01b031663b68f400483836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051636090dec560e01b8152600481018490526001600160a01b0383811660248301529151600092861691636090dec591604480830192602092919082900301818787803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d602081101561227257600080fd5b5051949350505050565b6000612288848361473d565b90506122a2858461229884614558565b60000360006128e0565b6122ae858430846113f1565b6040805163ef693bed60e01b81523360048201526024810184905290516001600160a01b0386169163ef693bed91604480830192600092919082900301818387803b158015611ae757600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d602081101561236157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b1580156123b057600080fd5b505afa1580156123c4573d6000803e3d6000fd5b505050506040513d60208110156123da57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561242957600080fd5b505afa15801561243d573d6000803e3d6000fd5b505050506040513d602081101561245357600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156124a757600080fd5b505afa1580156124bb573d6000803e3d6000fd5b505050506040513d60408110156124d157600080fd5b506020015190506124e987846110f18782808861438a565b61250389876124f788614558565b600003846000036128e0565b61250f898730886113f1565b6040805163ef693bed60e01b81523060048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b15801561255d57600080fd5b505af1158015612571573d6000803e3d6000fd5b50505050876001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156125b057600080fd5b505af11580156125c4573d6000803e3d6000fd5b505050506040513d60208110156125da57600080fd5b505160408051632e1a7d4d60e01b81526004810188905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b15801561262657600080fd5b505af115801561263a573d6000803e3d6000fd5b505060405133925087156108fc02915087906000818181858888f1935050505015801561266b573d6000803e3d6000fd5b50505050505050505050565b6111aa848361229884614558565b826001600160a01b031663e50322a283836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b801561288057836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561271457600080fd5b505af1158015612728573d6000803e3d6000fd5b505050506040513d602081101561273e57600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b15801561279657600080fd5b505af11580156127aa573d6000803e3d6000fd5b50505050836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b505050506040513d602081101561281357600080fd5b50516040805163095ea7b360e01b81526001600160a01b038781166004830152602482018690529151919092169163095ea7b391604480830192600092919082900301818387803b15801561286757600080fd5b505af115801561287b573d6000803e3d6000fd5b505050505b836001600160a01b0316633b4da69f84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561144a57600080fd5b836001600160a01b03166345e6bdcd8484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561144a57600080fd5b6000856001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561297c57600080fd5b505afa158015612990573d6000803e3d6000fd5b505050506040513d60208110156129a657600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038916916336569e77916004808301926020929190829003018186803b1580156129ee57600080fd5b505afa158015612a02573d6000803e3d6000fd5b505050506040513d6020811015612a1857600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b158015612a6757600080fd5b505afa158015612a7b573d6000803e3d6000fd5b505050506040513d6020811015612a9157600080fd5b50519050612aa9888660006115e2868c89888c6145a3565b612ab88886306115f688614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015612b0857600080fd5b505afa158015612b1c573d6000803e3d6000fd5b505050506040513d6020811015612b3257600080fd5b5051612ba957816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612b9057600080fd5b505af1158015612ba4573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663dc4d20fa826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b505af1158015612c63573d6000803e3d6000fd5b505050505050565b816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612ca657600080fd5b505af1158015612cba573d6000803e3d6000fd5b505050506040513d6020811015612cd057600080fd5b505160408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b158015612d1657600080fd5b505af1158015612d2a573d6000803e3d6000fd5b5050505050816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d6a57600080fd5b505af1158015612d7e573d6000803e3d6000fd5b505050506040513d6020811015612d9457600080fd5b50516040805163095ea7b360e01b81526001600160a01b0385811660048301523460248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015612de757600080fd5b505af1158015612dfb573d6000803e3d6000fd5b505060408051633b4da69f60e01b81526001600160a01b03858116600483015234602483015291519186169350633b4da69f925060448082019260009290919082900301818387803b158015612c4f57600080fd5b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e9657600080fd5b505afa158015612eaa573d6000803e3d6000fd5b505050506040513d6020811015612ec057600080fd5b50519050612ecf8582846139dc565b6000612edb878561473d565b90506130c58886612eeb84614558565b6000036115e28c6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f2a57600080fd5b505afa158015612f3e573d6000803e3d6000fd5b505050506040513d6020811015612f5457600080fd5b81019080805190602001909291905050508d6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9e57600080fd5b505afa158015612fb2573d6000803e3d6000fd5b505050506040513d6020811015612fc857600080fd5b505160408051633612d9a360e11b81526001600160a01b038b8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561301457600080fd5b505afa158015613028573d6000803e3d6000fd5b505050506040513d602081101561303e57600080fd5b8101908080519060200190929190505050888f6001600160a01b0316632c2cb9fd8e6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b505afa1580156130a8573d6000803e3d6000fd5b505050506040513d60208110156130be57600080fd5b50516147bc565b6130d1888630846113f1565b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0389169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663a3b22fc4826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b604080516305b1fdb160e11b8152600481018590526001600160a01b03848116602483015260448201849052915191861691630b63fb629160648082019260009290919082900301818387803b15801561144a57600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561320b57600080fd5b505afa15801561321f573d6000803e3d6000fd5b505050506040513d602081101561323557600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b15801561328457600080fd5b505afa158015613298573d6000803e3d6000fd5b505050506040513d60208110156132ae57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b1580156132fd57600080fd5b505afa158015613311573d6000803e3d6000fd5b505050506040513d602081101561332757600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b15801561337b57600080fd5b505afa15801561338f573d6000803e3d6000fd5b505050506040513d60408110156133a557600080fd5b506020015190506133bd87846110f18782808861438a565b60006133c9898761473d565b90506133e58a886133d984614558565b600003856000036128e0565b6133f18a8830846113f1565b6040805163ef693bed60e01b81523360048201526024810188905290516001600160a01b038b169163ef693bed91604480830192600092919082900301818387803b15801561343f57600080fd5b505af1158015613453573d6000803e3d6000fd5b5050505050505050505050505050565b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134a957600080fd5b505afa1580156134bd573d6000803e3d6000fd5b505050506040513d60208110156134d357600080fd5b505190506134e28582846139dc565b61369187856134f086614558565b6000036115e28b6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561352f57600080fd5b505afa158015613543573d6000803e3d6000fd5b505050506040513d602081101561355957600080fd5b5051604080516336569e7760e01b815290516001600160a01b038f16916336569e77916004808301926020929190829003018186803b15801561359b57600080fd5b505afa1580156135af573d6000803e3d6000fd5b505050506040513d60208110156135c557600080fd5b505160408051633612d9a360e11b81526001600160a01b038a8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561361157600080fd5b505afa158015613625573d6000803e3d6000fd5b505050506040513d602081101561363b57600080fd5b8101908080519060200190929190505050878e6001600160a01b0316632c2cb9fd8d6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b61369d878530866113f1565b6040805163ef693bed60e01b81523060048201526024810185905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b1580156136eb57600080fd5b505af11580156136ff573d6000803e3d6000fd5b50505050856001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050506040513d602081101561376857600080fd5b505160408051632e1a7d4d60e01b81526004810186905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156137b457600080fd5b505af11580156137c8573d6000803e3d6000fd5b505060405133925085156108fc02915085906000818181858888f193505050501580156111a0573d6000803e3d6000fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051638c4c280160e01b8152306004820152905160009182916001600160a01b03891691638c4c2801916024808301926020929190829003018186803b1580156138a457600080fd5b505afa1580156138b8573d6000803e3d6000fd5b505050506040513d60208110156138ce57600080fd5b505191506001600160a01b0382166138ec576138e98761430d565b91505b866001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561392757600080fd5b505af115801561393b573d6000803e3d6000fd5b505050506040513d602081101561395157600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018890529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156139a557600080fd5b505af11580156139b9573d6000803e3d6000fd5b505050506139ce898989898989896000613edf565b905097509795505050505050565b826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613a1757600080fd5b505af1158015613a2b573d6000803e3d6000fd5b505050506040513d6020811015613a4157600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b158015613a9957600080fd5b505af1158015613aad573d6000803e3d6000fd5b50505050826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613aec57600080fd5b505af1158015613b00573d6000803e3d6000fd5b505050506040513d6020811015613b1657600080fd5b50516040805163095ea7b360e01b81526001600160a01b038681166004830152602482018590529151919092169163095ea7b391604480830192600092919082900301818387803b158015613b6a57600080fd5b505af1158015613b7e573d6000803e3d6000fd5b50505050826001600160a01b0316633b4da69f83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000886001600160a01b0316632726b073866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d6020811015613c5257600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038c16916336569e77916004808301926020929190829003018186803b158015613c9a57600080fd5b505afa158015613cae573d6000803e3d6000fd5b505050506040513d6020811015613cc457600080fd5b505160408051632c2cb9fd60e01b81526004810189905290519192506000916001600160a01b038d1691632c2cb9fd916024808301926020929190829003018186803b158015613d1357600080fd5b505afa158015613d27573d6000803e3d6000fd5b505050506040513d6020811015613d3d57600080fd5b50519050613d4d898488876126d3565b613d6c8b88613d5f611a788d8b61473d565b6115e2868f89888d6145a3565b613d7b8b88306115f689614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038a81166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015613dcb57600080fd5b505afa158015613ddf573d6000803e3d6000fd5b505050506040513d6020811015613df557600080fd5b5051613e6c57816001600160a01b031663a3b22fc4896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015613e5357600080fd5b505af1158015613e67573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b158015613eba57600080fd5b505af1158015613ece573d6000803e3d6000fd5b505050505050505050505050505050565b6000613eec8986306121f5565b9050613efe8989898985898989613be2565b98975050505050505050565b613f148230612c6b565b826001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015613f4d57600080fd5b505afa158015613f61573d6000803e3d6000fd5b505050506040513d6020811015613f7757600080fd5b505160408051632c2cb9fd60e01b81526004810184905290516001600160a01b039283169263760887039290871691632c2cb9fd91602480820192602092909190829003018186803b158015613fcc57600080fd5b505afa158015613fe0573d6000803e3d6000fd5b505050506040513d6020811015613ff657600080fd5b505160408051632726b07360e01b81526004810186905290516001600160a01b03881691632726b073916024808301926020929190829003018186803b15801561403f57600080fd5b505afa158015614053573d6000803e3d6000fd5b505050506040513d602081101561406957600080fd5b5051308061407634614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b1580156117bd57600080fd5b60006140ed8784306121f5565b90506140fd87878787858761145e565b9695505050505050565b806001600160a01b0316866001600160a01b0316638161b120866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561415557600080fd5b505afa158015614169573d6000803e3d6000fd5b505050506040513d602081101561417f57600080fd5b50516001600160a01b0316146141ce576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b612c638686868686611906565b826001600160a01b0316637e348b7d83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561428957600080fd5b505afa15801561429d573d6000803e3d6000fd5b505050506040513d60208110156142b357600080fd5b50516001600160a01b031614614302576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484613f0a565b60408051631060930d60e01b815230600482015290516000916001600160a01b03841691631060930d9160248082019260209290919082900301818787803b15801561435857600080fd5b505af115801561436c573d6000803e3d6000fd5b505050506040513d602081101561438257600080fd5b505192915050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b1580156143d157600080fd5b505afa1580156143e5573d6000803e3d6000fd5b505050506040513d60a08110156143fb57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561445257600080fd5b505afa158015614466573d6000803e3d6000fd5b505050506040513d604081101561447c57600080fd5b5060209081015160408051633612d9a360e11b81526001600160a01b038a811660048301529151929450600093918b1692636c25b34692602480840193919291829003018186803b1580156144d057600080fd5b505afa1580156144e4573d6000803e3d6000fd5b505050506040513d60208110156144fa57600080fd5b50519050600061451361450d84866148ec565b83614947565b9050676765c793fa10079d601b1b810494508061453b86676765c793fa10079d601b1b6148ec565b10614546578461454b565b846001015b9998505050505050505050565b80600081121561459e576040805162461bcd60e51b815260206004820152600c60248201526b696e742d6f766572666c6f7760a01b604482015290519081900360640190fd5b919050565b600080856001600160a01b03166344e2a5a8856040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156145ec57600080fd5b505af1158015614600573d6000803e3d6000fd5b505050506040513d602081101561461657600080fd5b505160408051633612d9a360e11b81526001600160a01b0388811660048301529151929350600092918a1691636c25b34691602480820192602092909190829003018186803b15801561466857600080fd5b505afa15801561467c573d6000803e3d6000fd5b505050506040513d602081101561469257600080fd5b505190506146ab84676765c793fa10079d601b1b6148ec565b811015614715576146e1826146d46146ce87676765c793fa10079d601b1b6148ec565b84614947565b816146db57fe5b04614558565b92506146f884676765c793fa10079d601b1b6148ec565b61470284846148ec565b1061470d5782614712565b826001015b92505b505095945050505050565b600061473782676765c793fa10079d601b1b6148ec565b92915050565b60006147b582846001600160a01b031663b3bcfa826040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561477e57600080fd5b505af1158015614792573d6000803e3d6000fd5b505050506040513d60208110156147a857600080fd5b5051601203600a0a6148ec565b9392505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b15801561480357600080fd5b505afa158015614817573d6000803e3d6000fd5b505050506040513d60a081101561482d57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561488457600080fd5b505afa158015614898573d6000803e3d6000fd5b505050506040513d60408110156148ae57600080fd5b506020015190506148c18287816146db57fe5b9250808311156148dc576148d481614558565b6000036148e1565b826000035b979650505050505050565b60008115806149075750508082028282828161490457fe5b04145b614737576040805162461bcd60e51b815260206004820152600c60248201526b6d756c2d6f766572666c6f7760a01b604482015290519081900360640190fd5b80820382811115614737576040805162461bcd60e51b815260206004820152600c60248201526b7375622d6f766572666c6f7760a01b604482015290519081900360640190fdfea265627a7a7231582012dcfe4bf58005e81f7eafd7f0b120bebf5a4e6adcf218708bad72768b5c6e4e64736f6c634300050c0032", + "nonce": "1" + }, + "0x9759a6ac90977b93b58547b4a71c78317f391a28": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063957aa58c11610066578063957aa58c1461017e5780639c52a7f11461019c578063bf353dbb146101e0578063ef693bed14610238578063f4b9fa751461028657610093565b806336569e77146100985780633b4da69f146100e257806365fae35e146101305780636924500914610174575b600080fd5b6100a06102d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61012e600480360360408110156100f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506102f6565b005b6101726004803603602081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f8565b005b61017c610626565b005b610186610717565b6040518082815260200191505060405180910390f35b6101de600480360360208110156101b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061071d565b005b610222600480360360208110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084b565b6040518082815260200191505060405180910390f35b6102846004803603604081101561024e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610863565b005b61028e610add565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b308461034c6b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146105ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006003819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b60035481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b6001600354146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4461694a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b33306109316b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156109cd57600080fd5b505af11580156109e1573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821480610b205750828283850292508281610b1d57fe5b04145b610b2957600080fd5b9291505056fea265627a7a7231582073556d6c1e4fe23e478f0dc378056d7722545a3e43c977fa340ddc81d62345c864736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6": { + "balance": "0x0", + "code": "0x60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461008f5780631cff79cd146100b05780631f6a1eb91461011c57806360c7d295146101c95780637a9e5e4b146101fa5780638da5cb5b1461021b578063948f507614610230578063bf7e214f14610265575b005b34801561009b57600080fd5b5061008d600160a060020a036004351661027a565b60408051602060046024803582810135601f810185900485028601850190965285855261010a958335600160a060020a03169536956044949193909101919081908401838280828437509497506102f89650505050505050565b60408051918252519081900360200190f35b6040805160206004803580820135601f81018490048402850184019095528484526101a694369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103be9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101d557600080fd5b506101de6105ce565b60408051600160a060020a039092168252519081900360200190f35b34801561020657600080fd5b5061008d600160a060020a03600435166105dd565b34801561022757600080fd5b506101de610657565b34801561023c57600080fd5b50610251600160a060020a0360043516610666565b604080519115158252519081900360200190f35b34801561027157600080fd5b506101de61072d565b61029033600035600160e060020a03191661073c565b151561029b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b600061031033600035600160e060020a03191661073c565b151561031b57600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a038516151561038a57600080fd5b60206000855160208701886113885a03f460005193508015600181146103af576103b4565b600080fd5b5050505092915050565b6002546040517f8bf4515c0000000000000000000000000000000000000000000000000000000081526020600482018181528551602484015285516000948594600160a060020a0390911693638bf4515c93899390928392604490910191908501908083838b5b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561048957600080fd5b505af115801561049d573d6000803e3d6000fd5b505050506040513d60208110156104b357600080fd5b50519150600160a060020a03821615156105bb576002546040517f7ed0c3b2000000000000000000000000000000000000000000000000000000008152602060048201818152875160248401528751600160a060020a0390941693637ed0c3b293899383926044909201919085019080838360005b83811015610540578181015183820152602001610528565b50505050905090810190601f16801561056d5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505191505b6105c582846102f8565b90509250929050565b600254600160a060020a031681565b6105f333600035600160e060020a03191661073c565b15156105fe57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b600061067e33600035600160e060020a03191661073c565b151561068957600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a03841615156106f857600080fd5b60028054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff19909116179055600192505050919050565b600054600160a060020a031681565b600030600160a060020a031683600160a060020a031614156107605750600161084a565b600154600160a060020a038481169116141561077e5750600161084a565b600054600160a060020a031615156107985750600061084a565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301523081166024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505190505b929150505600a165627a7a72305820e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e10029", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be" + } + }, + "0xbaf6dc2e647aeb6f510f9e318856a1bcd66c5e19": { + "balance": "0x48b70935a04104bc", + "nonce": "11402" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x33cb67fca946d8da4bc1d", + "code": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029", + "nonce": "1", + "storage": { + "0x1442c20decac5e9285a003f6453d0611949f802121acdd6ff5a704143dd017db": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8629dae9a04a429781ee2d74cc5f87aff82085ecefb8c4f0101ac2b519e300e1": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc92c3a279814545c4590501add24843ce5413758f3869cb4885635cbbdbbaa51": "0x0000000000000000000000000000000000000000000075b6c54d53d2a2d6d3a7" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "balance": "0x71afd498d0014", + "code": "0x6080604052600436106101dc5760003560e01c8063affed0e011610102578063e19a9dd911610095578063f08a032311610064578063f08a032314611647578063f698da2514611698578063f8dc5dd9146116c3578063ffa1ad741461173e57610231565b8063e19a9dd91461139b578063e318b52b146113ec578063e75235b81461147d578063e86637db146114a857610231565b8063cc2f8452116100d1578063cc2f8452146110e8578063d4d9bdcd146111b5578063d8d11f78146111f0578063e009cfde1461132a57610231565b8063affed0e014610d94578063b4faba0914610dbf578063b63e800d14610ea7578063c4ca3a9c1461101757610231565b80635624b25b1161017a5780636a761202116101495780636a761202146109945780637d83297414610b50578063934f3a1114610bbf578063a0e67e2b14610d2857610231565b80635624b25b146107fb5780635ae6bd37146108b9578063610b592514610908578063694e80c31461095957610231565b80632f54bf6e116101b65780632f54bf6e146104d35780633408e4701461053a578063468721a7146105655780635229073f1461067a57610231565b80630d582f131461029e57806312fb68e0146102f95780632d9ad53d1461046c57610231565b36610231573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d346040518082815260200191505060405180910390a2005b34801561023d57600080fd5b5060007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b905080548061027257600080f35b36600080373360601b365260008060143601600080855af13d6000803e80610299573d6000fd5b3d6000f35b3480156102aa57600080fd5b506102f7600480360360408110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ce565b005b34801561030557600080fd5b5061046a6004803603608081101561031c57600080fd5b81019080803590602001909291908035906020019064010000000081111561034357600080fd5b82018360208201111561035557600080fd5b8035906020019184600183028401116401000000008311171561037757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103da57600080fd5b8201836020820111156103ec57600080fd5b8035906020019184600183028401116401000000008311171561040e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611bbe565b005b34801561047857600080fd5b506104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612440565b60405180821515815260200191505060405180910390f35b3480156104df57600080fd5b50610522600480360360208110156104f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612512565b60405180821515815260200191505060405180910390f35b34801561054657600080fd5b5061054f6125e4565b6040518082815260200191505060405180910390f35b34801561057157600080fd5b506106626004803603608081101561058857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105cf57600080fd5b8201836020820111156105e157600080fd5b8035906020019184600183028401116401000000008311171561060357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506125f1565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506107776004803603608081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106e457600080fd5b8201836020820111156106f657600080fd5b8035906020019184600183028401116401000000008311171561071857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506127d7565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561080757600080fd5b5061083e6004803603604081101561081e57600080fd5b81019080803590602001909291908035906020019092919050505061280d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087e578082015181840152602081019050610863565b50505050905090810190601f1680156108ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c557600080fd5b506108f2600480360360208110156108dc57600080fd5b8101908080359060200190929190505050612894565b6040518082815260200191505060405180910390f35b34801561091457600080fd5b506109576004803603602081101561092b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b005b34801561096557600080fd5b506109926004803603602081101561097c57600080fd5b8101908080359060200190929190505050612c3e565b005b610b3860048036036101408110156109ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109f257600080fd5b820183602082011115610a0457600080fd5b80359060200191846001830284011164010000000083111715610a2657600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610ab257600080fd5b820183602082011115610ac457600080fd5b80359060200191846001830284011164010000000083111715610ae657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612d78565b60405180821515815260200191505060405180910390f35b348015610b5c57600080fd5b50610ba960048036036040811015610b7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132b5565b6040518082815260200191505060405180910390f35b348015610bcb57600080fd5b50610d2660048036036060811015610be257600080fd5b810190808035906020019092919080359060200190640100000000811115610c0957600080fd5b820183602082011115610c1b57600080fd5b80359060200191846001830284011164010000000083111715610c3d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ca057600080fd5b820183602082011115610cb257600080fd5b80359060200191846001830284011164010000000083111715610cd457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506132da565b005b348015610d3457600080fd5b50610d3d613369565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d80578082015181840152602081019050610d65565b505050509050019250505060405180910390f35b348015610da057600080fd5b50610da9613512565b6040518082815260200191505060405180910390f35b348015610dcb57600080fd5b50610ea560048036036040811015610de257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610e1f57600080fd5b820183602082011115610e3157600080fd5b80359060200191846001830284011164010000000083111715610e5357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613518565b005b348015610eb357600080fd5b506110156004803603610100811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846020830284011164010000000083111715610f1c57600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f6757600080fd5b820183602082011115610f7957600080fd5b80359060200191846001830284011164010000000083111715610f9b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061353a565b005b34801561102357600080fd5b506110d26004803603608081101561103a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561108157600080fd5b82018360208201111561109357600080fd5b803590602001918460018302840111640100000000831117156110b557600080fd5b9091929391929390803560ff1690602001909291905050506136f8565b6040518082815260200191505060405180910390f35b3480156110f457600080fd5b506111416004803603604081101561110b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613820565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b838110156111a0578082015181840152602081019050611185565b50505050905001935050505060405180910390f35b3480156111c157600080fd5b506111ee600480360360208110156111d857600080fd5b8101908080359060200190929190505050613a12565b005b3480156111fc57600080fd5b50611314600480360361014081101561121457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561125b57600080fd5b82018360208201111561126d57600080fd5b8035906020019184600183028401116401000000008311171561128f57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb1565b6040518082815260200191505060405180910390f35b34801561133657600080fd5b506113996004803603604081101561134d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bde565b005b3480156113a757600080fd5b506113ea600480360360208110156113be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f6f565b005b3480156113f857600080fd5b5061147b6004803603606081101561140f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ff3565b005b34801561148957600080fd5b50611492614665565b6040518082815260200191505060405180910390f35b3480156114b457600080fd5b506115cc60048036036101408110156114cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561151357600080fd5b82018360208201111561152557600080fd5b8035906020019184600183028401116401000000008311171561154757600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061466f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561160c5780820151818401526020810190506115f1565b50505050905090810190601f1680156116395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561165357600080fd5b506116966004803603602081101561166a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614817565b005b3480156116a457600080fd5b506116ad614878565b6040518082815260200191505060405180910390f35b3480156116cf57600080fd5b5061173c600480360360608110156116e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506148f6565b005b34801561174a57600080fd5b50611753614d29565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611793578082015181840152602081019050611778565b50505050905090810190601f1680156117c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6117d6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118405750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561187857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414611bba57611bb981612c3e565b5b5050565b611bd2604182614e0590919063ffffffff16565b82511015611c48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808060008060005b8681101561243457611c648882614e3f565b80945081955082965050505060008460ff16141561206d578260001c9450611c96604188614e0590919063ffffffff16565b8260001c1015611d0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8751611d2760208460001c614e6e90919063ffffffff16565b1115611d9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006020838a01015190508851611dd182611dc360208760001c614e6e90919063ffffffff16565b614e6e90919063ffffffff16565b1115611e45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ee7578082015181840152602081019050611ecc565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611f4d578082015181840152602081019050611f32565b50505050905090810190601f168015611f7a5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015611f9957600080fd5b505afa158015611fad573d6000803e3d6000fd5b505050506040513d6020811015611fc357600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506122b2565b60018460ff161415612181578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061210a57506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b61217c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6122b1565b601e8460ff1611156122495760018a60405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012060048603858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612238573d6000803e3d6000fd5b5050506020604051035194506122b0565b60018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156122a3573d6000803e3d6000fd5b5050506020604051035194505b5b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161180156123795750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156123b25750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b612424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323600000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8495508080600101915050611c52565b50505050505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600173ffffffffffffffffffffffffffffffffffffffff161415801561250b5750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125dd5750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000804690508091505090565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126bc5750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61272e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61273b858585855a614e8d565b9050801561278b573373ffffffffffffffffffffffffffffffffffffffff167f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb860405160405180910390a26127cf565b3373ffffffffffffffffffffffffffffffffffffffff167facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37560405160405180910390a25b949350505050565b600060606127e7868686866125f1565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006020830267ffffffffffffffff8111801561282b57600080fd5b506040519080825280601f01601f19166020018201604052801561285e5781602001600182028036833780820191505090505b50905060005b8381101561288957808501548060208302602085010152508080600101915050612864565b508091505092915050565b60076020528060005260406000206000915090505481565b6128b4614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561291e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b612990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612c46614d62565b600354811115612cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811015612d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b6000806000612d928e8e8e8e8e8e8e8e8e8e60055461466f565b905060056000815480929190600101919050555080805190602001209150612dbb8282866132da565b506000612dc6614ed9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612fac578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b8152600401808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c8152602001806020018a6001811115612e6957fe5b81526020018981526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528d8d82818152602001925080828437600081840152601f19601f820116905080830192505050838103825285818151815260200191508051906020019080838360005b83811015612f3b578082015181840152602081019050612f20565b50505050905090810190601f168015612f685780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050600060405180830381600087803b158015612f9357600080fd5b505af1158015612fa7573d6000803e3d6000fd5b505050505b6101f4612fd36109c48b01603f60408d0281612fc457fe5b04614f0a90919063ffffffff16565b015a1015613049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005a90506130b28f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008d146130a7578e6130ad565b6109c45a035b614e8d565b93506130c75a82614f2490919063ffffffff16565b905083806130d6575060008a14155b806130e2575060008814155b613154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008089111561316e5761316b828b8b8b8b614f44565b90505b84156131b8577f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e8482604051808381526020018281526020019250505060405180910390a16131f8565b7f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d238482604051808381526020018281526020019250505060405180910390a15b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146132a4578073ffffffffffffffffffffffffffffffffffffffff16639327136883856040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561328b57600080fd5b505af115801561329f573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b6000600454905060008111613357576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61336384848484611bbe565b50505050565b6060600060035467ffffffffffffffff8111801561338657600080fd5b506040519080825280602002602001820160405280156133b55781602001602082028036833780820191505090505b50905060008060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613509578083838151811061346057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061341f565b82935050505090565b60055481565b600080825160208401855af4806000523d6020523d600060403e60403d016000fd5b6135858a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508961514a565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135c3576135c28461564a565b5b6136118787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615679565b600082111561362b5761362982600060018685614f44565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b8960405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281038252878782818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a250505050505050505050565b6000805a905061374f878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050865a614e8d565b61375857600080fd5b60005a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137e55780820151818401526020810190506137ca565b50505050905090810190601f1680156138125780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b606060008267ffffffffffffffff8111801561383b57600080fd5b5060405190808252806020026020018201604052801561386a5781602001602082028036833780820191505090505b509150600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561393d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561394857508482105b15613a03578084838151811061395a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506138d3565b80925081845250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16817ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c60405160405180910390a350565b6000613bc68c8c8c8c8c8c8c8c8c8c8c61466f565b8051906020012090509b9a5050505050505050505050565b613be6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613c505750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b613cc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613dc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613f77614d62565b60007f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b90508181557f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa282604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613ffb614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156140655750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561409d57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61410f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561427a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6142ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146143ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405180838380828437808301925050509250505060405180910390208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a815260200189815260200188600181111561470057fe5b81526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b61478c614878565b8360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509b9a5050505050505050505050565b61481f614d62565b6148288161564a565b7f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921860001b6148a66125e4565b30604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405160208183030381529060405280519060200120905090565b6148fe614d62565b806001600354031015614979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156149e35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614a55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614b55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414614d2457614d2381612c3e565b5b505050565b6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614e03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b565b600080831415614e185760009050614e39565b6000828402905082848281614e2957fe5b0414614e3457600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614e8357600080fd5b8091505092915050565b6000600180811115614e9b57fe5b836001811115614ea757fe5b1415614ec0576000808551602087018986f49050614ed0565b600080855160208701888a87f190505b95945050505050565b6000807f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b9050805491505090565b600081831015614f1a5781614f1c565b825b905092915050565b600082821115614f3357600080fd5b600082840390508091505092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614f815782614f83565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561509b57614fed3a8610614fca573a614fcc565b855b614fdf888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050615096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b615140565b6150c0856150b2888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91506150cd8482846158b4565b61513f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5095945050505050565b6000600454146151c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8151811115615239576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018110156152b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006001905060005b83518110156155b65760008482815181106152d057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156153445750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561537c57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156153b457508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b615426576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092505080806001019150506152b9565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b60007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461577b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146158b05761583d8260008360015a614e8d565b6158af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5050565b60008063a9059cbb8484604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050602060008251602084016000896127105a03f13d6000811461595b5760208114615963576000935061596e565b81935061596e565b600051158215171593505b505050939250505056fea26469706673582212203874bcf92e1722cc7bfa0cef1a0985cf0dc3485ba0663db3747ccdf1605df53464736f6c63430007060033", + "nonce": "1" + }, + "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be": { + "balance": "0x13cc5cb7f866bf2a1", + "code": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000023", + "0x311d6f25482807f0b0d46f6fafeb0c07abb26f38af26360b2d841fb5e32d1111": "0x0000000000000000000000002900ac563eab8d2d9da21ceb07a66e3bbe2fbe26", + "0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x58e147b099549d92d3f037e88e03bccd6809c3d28a894f441bc7a049e077b95c": "0x000000000000000000000000bd5b82b95d7c25f5f7767ecbdd5d3ea8fb63c09c", + "0x7feb34d70f880434f7b1e4bb8b4f0e58735b8893360e1666e7cebfad5910ba77": "0x0000000000000000000000004ea32106019d314cd50cd6121d616e511ada7782" + } + } + }, + "config": { + "chainName": "mainnet", + "chainId": 1, + "consensus": "ethash", + "homesteadBlock": 1150000, + "daoForkBlock": 1920000, + "eip150Block": 2463000, + "eip155Block": 2675000, + "byzantiumBlock": 4370000, + "constantinopleBlock": 7280000, + "petersburgBlock": 7280000, + "istanbulBlock": 9069000, + "muirGlacierBlock": 9200000, + "berlinBlock": 12244000, + "londonBlock": 12965000, + "arrowGlacierBlock": 13773000, + "grayGlacierBlock": 15050000, + "terminalTotalDifficulty": null, + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 1681338455, + "cancunTime": 1710338135, + "ethash": {}, + "noPruneContracts": { + "0x00000000219ab540356cbb839cbe05303d7705fa": true + } + }, + "gasLimit": "30000000", + "difficulty": "0" + }, + "context": { + "number": "16494085", + "difficulty": "0", + "timestamp": "1674773399", + "gasLimit": "30000000", + "baseFeePerGas": "26264939160", + "miner": "0xBaF6dC2E647aeb6F510f9e318856A1BCd66C5e19" + }, + "input": "0x02f90433018229ee8459682f008507735940008306a17894ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be80b903c46a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000c0809fd599bfb27f78926f546e1ec2bbb39e7b91e5bdba54be97a16212045210ba7da06354952e8b7662cdc82ce4b6b4a5ffab9fbb58e010d6322a3b7b721d23952f66", + "result": { + "from": "0x519e19eac9ead404343c68224dd2a22c5c25f992", + "gas": "0x6a178", + "gasUsed": "0x51cd6", + "to": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "calls": [ + { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "gas": "0x60615", + "gasUsed": "0x5d0b0", + "to": "0xd9db270c1b5e3bd161e8c8503c55ceabee709552", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "calls": [ + { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "gas": "0x5bb54", + "gasUsed": "0xbb8", + "to": "0x0000000000000000000000000000000000000001", + "input": "0x92f73a75745a1d014b090d5f5fa26e968a31b08fa39af96fbda4b8b54a161749000000000000000000000000000000000000000000000000000000000000001c07d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba", + "output": "0x000000000000000000000000b66a81ed60cc6faf7f81d5add216782dac66af6d", + "type": "STATICCALL" + }, + { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "gas": "0x5a43c", + "gasUsed": "0xbb8", + "to": "0x0000000000000000000000000000000000000001", + "input": "0x92f73a75745a1d014b090d5f5fa26e968a31b08fa39af96fbda4b8b54a161749000000000000000000000000000000000000000000000000000000000000001cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe", + "output": "0x000000000000000000000000bd5b82b95d7c25f5f7767ecbdd5d3ea8fb63c09c", + "type": "STATICCALL" + }, + { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "gas": "0x560b3", + "gasUsed": "0x53a37", + "to": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "input": "0x1cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000000000000000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "calls": [ + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x51f84", + "gasUsed": "0x50d61", + "to": "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038", + "input": "0x1c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000", + "calls": [ + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4fe81", + "gasUsed": "0xa34", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x2726b0730000000000000000000000000000000000000000000000000000000000007587", + "output": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4f2da", + "gasUsed": "0x95e", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x36569e77", + "output": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4e7f3", + "gasUsed": "0x9b6", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x2c2cb9fd0000000000000000000000000000000000000000000000000000000000007587", + "output": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4d333", + "gasUsed": "0x98a", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "input": "0x7bd2bea7", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4a4fa", + "gasUsed": "0x5da6", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "input": "0xd0e30db0", + "value": "0x1314fb37062980000", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x44751", + "gasUsed": "0x1ba", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "input": "0x7bd2bea7", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x443e1", + "gasUsed": "0x5f64", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "input": "0x095ea7b30000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x3e467", + "gasUsed": "0xcf11", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "input": "0x3b4da69f000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "calls": [ + { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "gas": "0x3b018", + "gasUsed": "0x732c", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x7cdd3fde4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "gas": "0x33c93", + "gasUsed": "0x22f4", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "input": "0x23b872dd000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x30d0f", + "gasUsed": "0xde8c", + "to": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "input": "0x44e2a5a84554482d41000000000000000000000000000000000000000000000000000000", + "output": "0x00000000000000000000000000000000000000000380cda8be5c7905bb99b3dd", + "calls": [ + { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "gas": "0x2eda5", + "gasUsed": "0x2b56", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xd9638d364554482d41000000000000000000000000000000000000000000000000000000", + "output": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e28435600000000000000000000000000000000000000000380ccf64585d61dfc80728d000000000000000000000000000000000000000dee286c5d5714c921f9f6469e00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de5200000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "gas": "0x29b33", + "gasUsed": "0x5a46", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xb65337df4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000a950524441892a31ebddf91d3ceefa04bf4544660000000000000000000000000000000000000000000000b278d6a2e7bf194150", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x23046", + "gasUsed": "0x9e8", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x6c25b346000000000000000000000000dd805914a055a090892158f57dca419e8042746a", + "output": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x221b4", + "gasUsed": "0x9af4", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x45e6bdcd0000000000000000000000000000000000000000000000000000000000007587000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "calls": [ + { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "gas": "0x20b33", + "gasUsed": "0x7ba9", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x760887034554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x186af", + "gasUsed": "0x83ad", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0xf9f30db60000000000000000000000000000000000000000000000000000000000007587000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "calls": [ + { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "gas": "0x17b3b", + "gasUsed": "0x6d27", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xbb35783b000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x1036f", + "gasUsed": "0xa35", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x4538c4eb000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0xee07", + "gasUsed": "0xdf71", + "to": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "input": "0xef693bed000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "calls": [ + { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "gas": "0xd6a5", + "gasUsed": "0x2a5b", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xbb35783b000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "gas": "0x999d", + "gasUsed": "0x7c65", + "to": "0x6b175474e89094c44da98b954eedeac495271d0f", + "input": "0x40c10f19000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x1314fb37062980000", + "type": "DELEGATECALL" + } + ], + "value": "0x1314fb37062980000", + "type": "CALL" + } + ], + "value": "0x0", + "type": "DELEGATECALL" + } + ], + "value": "0x0", + "type": "CALL" + } +} diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/call_tracer_config_disable_includePrecompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json b/eth/tracers/internal/tracetest/testdata/call_tracer/call_tracer_config_disable_includePrecompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json new file mode 100644 index 00000000000..55ca924c75a --- /dev/null +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/call_tracer_config_disable_includePrecompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json @@ -0,0 +1,440 @@ +{ + "genesis": { + "alloc": { + "0x0000000000000000000000000000000000000001": { + "balance": "0x2e0636ccb6044b740" + }, + "0x19c0976f590d67707e62397c87829d896dc0f1f1": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063626cb3c511610071578063626cb3c51461020b57806365fae35e146102555780639c52a7f114610299578063bf353dbb146102dd578063d4e8be8314610335578063d9638d3614610383576100b4565b80631a0b287e146100b957806329ae8114146100fb57806336569e77146101335780633b6631951461017d57806344e2a5a8146101ab5780635001f3b5146101ed575b600080fd5b6100f9600480360360608110156100cf57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506103cc565b005b6101316004803603604081101561011157600080fd5b8101908080359060200190929190803590602001909291905050506105f9565b005b61013b610786565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a96004803603602081101561019357600080fd5b81019080803590602001909291905050506107ac565b005b6101d7600480360360208110156101c157600080fd5b8101908080359060200190929190505050610946565b6040518082815260200191505060405180910390f35b6101f5610c35565b6040518082815260200191505060405180910390f35b610213610c3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102976004803603602081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c61565b005b6102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8f565b005b61031f600480360360208110156102f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebd565b6040518082815260200191505060405180910390f35b6103816004803603604081101561034b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed5565b005b6103af6004803603602081101561039957600080fd5b810190808035906020019092919050505061109c565b604051808381526020018281526020019250505060405180910390f35b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600084815260200190815260200160002060010154421461050b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4a75672f72686f2d6e6f742d757064617465640000000000000000000000000081525060200191505060405180910390fd5b7f6475747900000000000000000000000000000000000000000000000000000000821415610553578060016000858152602001908152602001600020600001819055506105c1565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f62617365000000000000000000000000000000000000000000000000000000008214156106e1578060048190555061074f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610860576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b600060016000838152602001908152602001600020905060008160000154146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4a75672f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce80000008160000181905550428160010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b600060016000838152602001908152602001600020600101544210156109d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4a75672f696e76616c69642d6e6f77000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b158015610a4a57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b505050506040513d6040811015610a7457600080fd5b810190808051906020019092919080519060200190929190505050915050610aeb610ae5610aba60045460016000888152602001908152602001600020600001546110c0565b600160008781526020019081526020016000206001015442036b033b2e3c9fd0803ce80000006110da565b826111a0565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b65337df84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b5986866111e5565b6040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bc957600080fd5b505af1158015610bdd573d6000803e3d6000fd5b50505050426001600085815260200190815260200160002060010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450919050565b60045481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f766f770000000000000000000000000000000000000000000000000000000000821415610ff75780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611065565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016020528060005260406000206000915090508060000154908060010154905082565b60008183019050828110156110d457600080fd5b92915050565b600083600081146111805760028406600081146110f9578592506110fd565b8392505b50600283046002850494505b841561117a57858602868782041461112057600080fd5b8181018181101561113057600080fd5b8581049750600287061561116d57878502858982041415891515161561115557600080fd5b8381018181101561116557600080fd5b878104965050505b5050600285049450611109565b50611198565b83600081146111925760009250611196565b8392505b505b509392505050565b6000818302905060008214806111be5750828282816111bb57fe5b04145b6111c757600080fd5b6b033b2e3c9fd0803ce800000081816111dc57fe5b04905092915050565b60008183039050600083121580156111fe575060008212155b61120757600080fd5b9291505056fea265627a7a723158201f0f7975dfa300ecdb0df09b00b4c72acd04d6776756f811d747fa04dd51ca1b64736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947015": "0x0000000000000000000000000000000000000000033b2e3ca65dca26e20d5eda", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947016": "0x0000000000000000000000000000000000000000000000000000000063d2ea77" + } + }, + "0x2f0b23f53734252bda2277357e97e1517d6b042a": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063957aa58c11610071578063957aa58c146101de5780639c52a7f1146101fc578063b3bcfa8214610240578063bf353dbb1461025e578063c5ce281e146102b6578063ef693bed146102d4576100a9565b806336569e77146100ae5780633b4da69f146100f857806365fae35e14610146578063692450091461018a5780637bd2bea714610194575b600080fd5b6100b6610322565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101446004803603604081101561010e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610348565b005b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106c3565b005b6101926107f1565b005b61019c6108e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e6610908565b6040518082815260200191505060405180910390f35b61023e6004803603602081101561021257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090e565b005b610248610a3c565b6040518082815260200191505060405180910390f35b6102a06004803603602081101561027457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a42565b6040518082815260200191505060405180910390f35b6102be610a5a565b6040518082815260200191505060405180910390f35b610320600480360360408110156102ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001600554146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b6000811215610437576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025484846040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156104ea57600080fd5b505af11580156104fe573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d602081101561060957600080fd5b810190808051906020019092919050505061068c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610777576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006005819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60045481565b60006020528060005260406000206000915090505481565b60025481565b7f8000000000000000000000000000000000000000000000000000000000000000811115610af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025433846000036040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bac57600080fd5b505af1158015610bc0573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050506040513d6020811015610c9757600080fd5b8101908080519060200190929190505050610d1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505056fea265627a7a72315820bfdfa122fe3ad43a5d779b939c506cae7507e0f5e807767f61193161f1c1e28664736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80637cdd3fde116100f9578063bb35783b11610097578063dc4d20fa11610071578063dc4d20fa1461096c578063f059212a146109b0578063f24e23eb14610a08578063f37ac61c14610a76576101c4565b8063bb35783b14610848578063bf353dbb146108b6578063d9638d361461090e576101c4565b80639c52a7f1116100d35780639c52a7f11461074a578063a3b22fc41461078e578063b65337df146107d2578063babe8a3f1461082a576101c4565b80637cdd3fde14610652578063870c616d146106aa578063957aa58c1461072c576101c4565b80634538c4eb11610166578063692450091161014057806369245009146104ac5780636c25b346146104b6578063760887031461050e5780637bab3f40146105b0576101c4565b80634538c4eb146103785780636111be2e146103f057806365fae35e14610468576101c4565b80632424be5c116101a25780632424be5c1461028b57806329ae8114146102f45780632d61a3551461032c5780633b6631951461034a576101c4565b80630dca59c1146101c95780631a0b287e146101e7578063214414d514610229575b600080fd5b6101d1610aa4565b6040518082815260200191505060405180910390f35b610227600480360360608110156101fd57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610aaa565b005b6102756004803603604081101561023f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d58565b6040518082815260200191505060405180910390f35b6102d7600480360360408110156102a157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7d565b604051808381526020018281526020019250505060405180910390f35b61032a6004803603604081101561030a57600080fd5b810190808035906020019092919080359060200190929190505050610dae565b005b610334610fb5565b6040518082815260200191505060405180910390f35b6103766004803603602081101561036057600080fd5b8101908080359060200190929190505050610fbb565b005b6103da6004803603604081101561038e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061115a565b6040518082815260200191505060405180910390f35b6104666004803603608081101561040657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061117f565b005b6104aa6004803603602081101561047e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611392565b005b6104b461153a565b005b6104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162d565b6040518082815260200191505060405180910390f35b6105ae600480360360c081101561052457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611645565b005b610650600480360360c08110156105c657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e31565b005b6106a86004803603606081101561066857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612130565b005b61072a600480360360a08110156106c057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506122cc565b005b610734612700565b6040518082815260200191505060405180910390f35b61078c6004803603602081101561076057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612706565b005b6107d0600480360360208110156107a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ae565b005b610828600480360360608110156107e857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612967565b005b610832612bac565b6040518082815260200191505060405180910390f35b6108b46004803603606081101561085e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bb2565b005b6108f8600480360360208110156108cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d80565b6040518082815260200191505060405180910390f35b61093a6004803603602081101561092457600080fd5b8101908080359060200190929190505050612d98565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6109ae6004803603602081101561098257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dce565b005b6109f2600480360360208110156109c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e88565b6040518082815260200191505060405180910390f35b610a7460048036036060811015610a1e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ea0565b005b610aa260048036036020811015610a8c57600080fd5b81019080803590602001909291905050506130ca565b005b60075481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f73706f7400000000000000000000000000000000000000000000000000000000821415610c1e57806002600085815260200190815260200160002060020181905550610d1e565b7f6c696e6500000000000000000000000000000000000000000000000000000000821415610c6657806002600085815260200190815260200160002060030181905550610d1d565b7f6475737400000000000000000000000000000000000000000000000000000000821415610cae57806002600085815260200190815260200160002060040181905550610d1c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5b5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f4c696e6500000000000000000000000000000000000000000000000000000000821415610f0e5780600981905550610f7c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050565b60085481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461106f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006002600083815260200190815260200160002060010154146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce800000060026000838152602001908152602001600020600101819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b6001602052816000526040600020602052806000526040600020600091509150505481565b6111898333613244565b6111fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6112556004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b6004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113036004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b6004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a54146114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6000600a819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450565b60056020528060005260406000206000915090505481565b6001600a54146116bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6116c5613437565b6003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905061173e613451565b600260008981526020019081526020016000206040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905060008160200151141561180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f696c6b2d6e6f742d696e69740000000000000000000000000000000081525060200191505060405180910390fd5b611819826000015185613338565b826000018181525050611830826020015184613338565b826020018181525050611847816000015184613338565b8160000181815250506000611860826020015185613377565b90506000611876836020015185602001516133b2565b905061188460075483613338565b6007819055506118c060008613156118bb85606001516118ac876000015188602001516133b2565b111560095460075411156133de565b6133eb565b611932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f6365696c696e672d657863656564656400000000000000000000000081525060200191505060405180910390fd5b611961611947600087131560008912156133de565b611959866000015186604001516133b2565b8311156133eb565b6119d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d73616665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6119f76119e8600087131560008912156133de565b6119f28b33613244565b6133eb565b611a69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7500000000000000000000000000000081525060200191505060405180910390fd5b611a806000871315611a7b8a33613244565b6133eb565b611af2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7600000000000000000000000000000081525060200191505060405180910390fd5b611b096000861215611b048933613244565b6133eb565b611b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7700000000000000000000000000000081525060200191505060405180910390fd5b611b93600085602001511484608001518310156133eb565b611c05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f5661742f6475737400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611c5f600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054876133f8565b600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfc600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613338565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600360008c815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015590505082600260008c81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008981526020019081526020016000209050611f5e826000015485613338565b8260000181905550611f74826001015484613338565b8260010181905550611f8a816000015484613338565b81600001819055506000611fa2826001015485613377565b9050611ffe600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866133f8565b600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061209b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826133f8565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ea600854826133f8565b6008819055505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146121e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b61223e6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006003600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006003600088815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002600089815260200190815260200160002090506123998360000154866133f8565b83600001819055506123af8360010154856133f8565b83600101819055506123c5826000015486613338565b82600001819055506123db826001015485613338565b826001018190555060006123f7846001015483600101546133b2565b9050600061240d846001015484600101546133b2565b905061242b61241c8a33613244565b6124268a33613244565b6133de565b61249d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6124af856000015484600201546133b2565b821115612524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d7372630000000000000000000000000000000081525060200191505060405180910390fd5b612536846000015484600201546133b2565b8111156125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d6473740000000000000000000000000000000081525060200191505060405180910390fd5b6125c3836004015483101560008760010154146133eb565b612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d737263000000000000000000000000000000000000000081525060200191505060405180910390fd5b61264d836004015482101560008660010154146133eb565b6126bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d647374000000000000000000000000000000000000000081525060200191505060405180910390fd5b50505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050505050565b600a5481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146127ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008581526020019081526020016000209050612ab8816001015483613338565b81600101819055506000612ad0826000015484613377565b9050612b1b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6a60075482613338565b60078190555050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60095481565b612bbc8333613244565b612c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b612c77600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d03600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006020528060005260406000206000915090505481565b60026020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60066020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b612f9d600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613029600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130786008548261331e565b60088190555061308a6007548261331e565b6007819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6000339050613118600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a4600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131f360085483613304565b60088190555061320560075483613304565b600781905550505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60006132fc8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161460018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146133eb565b905092915050565b600082828403915081111561331857600080fd5b92915050565b600082828401915081101561333257600080fd5b92915050565b6000818301905060008212158061334f5750828111155b61335857600080fd5b6000821315806133685750828110155b61337157600080fd5b92915050565b60008183029050600083121561338c57600080fd5b60008214806133a35750828282816133a057fe5b05145b6133ac57600080fd5b92915050565b6000808214806133cf57508282838502925082816133cc57fe5b04145b6133d857600080fd5b92915050565b6000818316905092915050565b6000818317905092915050565b6000818303905060008213158061340f5750828111155b61341857600080fd5b6000821215806134285750828110155b61343157600080fd5b92915050565b604051806040016040528060008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fea265627a7a723158208a74d6db3d5b0eba259e13b86f201f0fda2be3ffedbc0b4f90a67d87593f4de764736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000003d3d67f3d7d8a25bc1c037c1740d24aa03e289b6252300", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x0000000000000000004b9f290913b5bf9a382b54d06234482cf1f7e0cfda70ab", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x099e89cca7ffe1d2fcd345b67a28e02e04474aa4d90f285fcc24596ad4e02166": "0x000000000000000000071cbf8d399b90123a8d1e02f6f6534683a51cf0ea7930", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece131": "0x00000000000000000000000000000000000000000000000100bd33fb98ba0000", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece132": "0x0000000000000000000000000000000000000000000002ee2ccae7afb419fb3c", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bb": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e284356", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bc": "0x00000000000000000000000000000000000000000380ccf64585d61dfc80728d", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bd": "0x000000000000000000000000000000000000000dee286c5d5714c921f9f6469e", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603be": "0x00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de52", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bf": "0x00000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000", + "0x6e75488ddfb650532684741eb749ac29db15c8cd59d7771c466155b09612ad73": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x76d2f8c9c940909546724749d054410d1b135d6ef5a8bfd0282076cddf92341a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x7adce341587c7ad28f80a9ef54da0d2f0bfd917b11856be2d246a8c66685b1a0": "0x00000000000000000035b22aa5a2c02ba12ba32fd0477f78170a5fa138000000", + "0x7dd215c1c7bcd252f448890ba9ae168596a6af47f2681a1a28e1bf27b5852a96": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8", + "0x8ac5aa31fc59e05e568a0740a98215030c52ef77851d6455526a8fb927e5faef": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9b06c498c1411f7819ef58913eda44a81e9bfe5678cc341ce6899b997142b937": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9cba659f061d332adc7f618d3ee453592937192458a7ec7299d1231dedc537b8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc450373d07c0691a78dacf78508240f60ba6e2a98fe98dd05ed39cf53e29ac3d": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x519e19eac9ead404343c68224dd2a22c5c25f992": { + "balance": "0x2fa15b25b57acff", + "nonce": "10734" + }, + "0x5ef30b9986345249bc32d8928b7ee64de9435e39": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806380c9419e116100b8578063b3d178f21161007c578063b3d178f2146106f4578063b68f400414610712578063e50322a214610760578063f9f30db614610798578063fc73d771146107f0578063fcafcc681461084857610142565b806380c9419e146105155780638161b1201461055e5780639a816f7d146105cc5780639bb8f83814610624578063b2b192e61461067c57610142565b80632c2cb9fd1161010a5780632c2cb9fd1461031557806336569e771461035757806345e6bdcd146103a15780635aebb460146103e35780636090dec5146104655780637e348b7d146104c757610142565b806305d85eda146101475780630b63fb621461019f57806318af4d60146101f75780631b0dbf72146102595780632726b073146102a7575b600080fd5b6101896004803603602081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610896565b6040518082815260200191505060405180910390f35b6101f5600480360360608110156101b557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ae565b005b6102576004803603608081101561020d57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b19565b005b6102a56004803603604081101561026f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e22565b005b6102d3600480360360208110156102bd57600080fd5b81019080803590602001909291905050506113b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103416004803603602081101561032b57600080fd5b81019080803590602001909291905050506113ea565b6040518082815260200191505060405180910390f35b61035f611402565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e1600480360360608110156103b757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611427565b005b61044f600480360360608110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611784565b6040518082815260200191505060405180910390f35b6104b16004803603604081101561047b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b6565b6040518082815260200191505060405180910390f35b610513600480360360408110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cac565b005b6105416004803603602081101561052b57600080fd5b810190808035906020019092919050505061220e565b604051808381526020018281526020019250505060405180910390f35b61058a6004803603602081101561057457600080fd5b8101908080359060200190929190505050612232565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61060e600480360360208110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612265565b6040518082815260200191505060405180910390f35b61067a6004803603606081101561063a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061227d565b005b6106de6004803603604081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612598565b6040518082815260200191505060405180910390f35b6106fc6125bd565b6040518082815260200191505060405180910390f35b61075e6004803603604081101561072857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125c3565b005b6107966004803603604081101561077657600080fd5b810190808035906020019092919080359060200190929190505050612648565b005b6107ee600480360360608110156107ae57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d22565b005b6108326004803603602081101561080657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613022565b6040518082815260200191505060405180910390f35b6108946004803603604081101561085e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061303a565b005b60086020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109dc57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b81600960006004600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c4757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610cb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e866002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061107957506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6110eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d604081101561120357600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886112b1876139ab565b6112ba876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561136457600080fd5b505af1158015611378573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061155557506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6115c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b60006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376088703600560008881526020019081526020016000205483848589896040518763ffffffff1660e01b8152600401808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b5050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600960205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561185a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7573722d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b61186760015460016139c3565b6001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161189b906139f7565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156118ed573d6000803e3d6000fd5b5060026000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160046000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006001548152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a3e57600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b3e57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060015481526020019081526020016000206000018190555060015460036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b600154600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bce600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001548273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd6be0bc178658a382ff4f91c8c68b542aa6b71685b8fe427966b87745c3ea7a260405160405180910390a460015490505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45092915050565b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d6357506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f0357506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611f75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600088815260200190815260200160002054886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561203057600080fd5b505afa158015612044573d6000803e3d6000fd5b505050506040513d604081101561205a57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d600560008881526020019081526020016000205488600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612108876139ab565b612111876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156121bb57600080fd5b505af11580156121cf573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60036020528060005260406000206000915090508060000154908060010154905082565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123ab57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b61241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e60056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b15801561254757600080fd5b505af115801561255b573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600a602052816000526040600020602052806000526040600020600091509150505481565b60015481565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061277657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6127e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061291657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6005600084815260200190815260200160002054600560008681526020019081526020016000205414612a23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6e6f6e2d6d61746368696e672d6364707300000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015612b1157600080fd5b505afa158015612b25573d6000803e3d6000fd5b505050506040513d6040811015612b3b57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612c1c876139ab565b612c25876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015612ccf57600080fd5b505af1158015612ce3573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612e5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612ec2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b6002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015612fd157600080fd5b505af1158015612fe5573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60066020528060005260406000206000915090505481565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061316857506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6131da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561327d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6473742d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b6004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6473742d616c72656164792d6f776e657200000000000000000000000000000081525060200191505060405180910390fd5b60006003600085815260200190815260200160002060000154146133b85760036000848152602001908152602001600020600101546003600060036000878152602001908152602001600020600001548152602001908152602001600020600101819055505b60006003600085815260200190815260200160002060010154146134225760036000848152602001908152602001600020600001546003600060036000878152602001908152602001600020600101548152602001908152602001600020600001819055506134b0565b6003600084815260200190815260200160002060000154600760006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156135b8576003600084815260200190815260200160002060010154600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613635600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139dd565b600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600085815260200190815260200160002060000181905550600060036000858152602001908152602001600020600101819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613815578260036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156138a25782600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613930600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600081905060008112156139be57600080fd5b919050565b60008282840191508110156139d757600080fd5b92915050565b60008282840391508111156139f157600080fd5b92915050565b61012480613a058339019056fe6080604052348015600f57600080fd5b5060405161012438038061012483398181016040526020811015603157600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1663a3b22fc4336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801560c057600080fd5b505af115801560d3573d6000803e3d6000fd5b5050505050603e806100e66000396000f3fe6080604052600080fdfea265627a7a7231582011d8228e4d52a33e72559199f2a9e6502500acb18f172cf552c647d56fee044f64736f6c634300050c0032a265627a7a723158206b3b639e0afdc17dc08b18e9de88cc23f7660f74f3b7b18d0cb4f00d516c544364736f6c634300050c0032", + "nonce": "30122", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x39283d02e250354521f59445ea551727c1b2713f6e01b3b151d3168c74288463": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x6b3785a4182d3401a98d077bae4c3646fcde354cc8e75c1f95de1faf7ff875c1": "0x000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "0xe91a1aec2b8c6704e98c22b374058d1324cfbce841779cb2a4d296942f0caf2f": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a" + } + }, + "0x6b175474e89094c44da98b954eedeac495271d0f": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637ecebe00116100b8578063a9059cbb1161007c578063a9059cbb146106b4578063b753a98c1461071a578063bb35783b14610768578063bf353dbb146107d6578063dd62ed3e1461082e578063f2d5d56b146108a657610142565b80637ecebe00146104a15780638fcbaf0c146104f957806395d89b411461059f5780639c52a7f1146106225780639dc29fac1461066657610142565b8063313ce5671161010a578063313ce567146102f25780633644e5151461031657806340c10f191461033457806354fd4d501461038257806365fae35e1461040557806370a082311461044957610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e57806330adf81f146102d4575b600080fd5b61014f6108f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061092d565b604051808215151515815260200191505060405180910390f35b610238610a1f565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a25565b604051808215151515815260200191505060405180910390f35b6102dc610f3a565b6040518082815260200191505060405180910390f35b6102fa610f61565b604051808260ff1660ff16815260200191505060405180910390f35b61031e610f66565b6040518082815260200191505060405180910390f35b6103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6c565b005b61038a611128565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ca5780820151818401526020810190506103af565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104476004803603602081101561041b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b005b61048b6004803603602081101561045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061128f565b6040518082815260200191505060405180910390f35b6104e3600480360360208110156104b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b6040518082815260200191505060405180910390f35b61059d600480360361010081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506112bf565b005b6105a76117fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e75780820151818401526020810190506105cc565b50505050905090810190601f1680156106145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106646004803603602081101561063857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611833565b005b6106b26004803603604081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611961565b005b610700600480360360408110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611df4565b604051808215151515815260200191505060405180910390f35b6107666004803603604081101561073057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e09565b005b6107d46004803603606081101561077e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e19565b005b610818600480360360208110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2a565b6040518082815260200191505060405180910390f35b6108906004803603604081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e42565b6040518082815260200191505060405180910390f35b6108f2600480360360408110156108bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e67565b005b6040518060400160405280600e81526020017f44616920537461626c65636f696e00000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60015481565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610adc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610bb457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610db25781600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b610d31600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dfb600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e87600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e91565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b81565b601281565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611020576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b611069600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e91565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110b860015482611e91565b6001819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b60006005547fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b8a8a8a8a8a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018215151515815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4461692f696e76616c69642d616464726573732d30000000000000000000000081525060200191505060405180910390fd5b60018185858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114e9573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f696e76616c69642d7065726d6974000000000000000000000000000081525060200191505060405180910390fd5b60008614806115a25750854211155b611614576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f7065726d69742d65787069726564000000000000000000000000000081525060200191505060405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505587146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4461692f696e76616c69642d6e6f6e636500000000000000000000000000000081525060200191505060405180910390fd5b6000856116e4576000611706565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b905080600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050505050505050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611aee57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611cec5780600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b611c6b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611d35600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8460015482611e77565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611e01338484610a25565b905092915050565b611e14338383610a25565b505050565b611e24838383610a25565b50505050565b60006020528060005260406000206000915090505481565b6003602052816000526040600020602052806000526040600020600091509150505481565b611e72823383610a25565b505050565b6000828284039150811115611e8b57600080fd5b92915050565b6000828284019150811015611ea557600080fd5b9291505056fea265627a7a72315820c0ae2c29860c0a59d5586a579abbcddfe4bcef0524a87301425cbc58c3e94e3164736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000109e3b852672498b65cb8fa1", + "0x9fa7d1a90466effd74b6142b5e6b4b076451f75604d0878dc681cb2014f26d08": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xa9b43d59829a0e23e9335ae57bfab96d4c0f7c384de723cf3c0a9a8dbd6d8b7e": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038": { + "balance": "0x0", + "code": "0x60806040526004361061023b5760003560e01c806396e8d72c1161012e578063c0791710116100ab578063e685cc041161006f578063e685cc0414610c7d578063ead6472914610cc9578063eb0b9a8514610d20578063ee28457614610d63578063fba7591d14610d9f5761023b565b8063c079171014610ab2578063c56167c614610b34578063cbd4be3f14610b77578063db802a3214610bdf578063e205c10814610c475761023b565b8063b50a5869116100f2578063b50a586914610949578063ba727a9514610984578063bcd6deec146109cb578063be5e6c0314610a1a578063beabacc814610a6f5761023b565b806396e8d72c146107f75780639f6f3d5b1461083c5780639f887fde1461088b578063a033df12146108c6578063a6add011146108f45761023b565b80634592aca7116101bc5780636ab6a491116101805780636ab6a4911461068c5780636d68b70b146106d55780637b5a3b43146107245780637bc3bd531461076d5780637df2eb25146107ac5761023b565b80634592aca71461051f578063493c2049146105625780634b666199146105ab5780635f6ef447146105f45780636aa3ee11146106375761023b565b80631d10f231116102035780631d10f231146103aa57806325cf37d0146103ed5780632958f8a5146104345780633e29e5651461048557806342dd11bb146104d65761023b565b8063036a23951461024057806308f00e34146102855780630aee8dec146102ce5780631558b048146103175780631c02d8461461035e575b600080fd5b34801561024c57600080fd5b506102836004803603606081101561026357600080fd5b506001600160a01b03813581169160208101359091169060400135610dee565b005b34801561029157600080fd5b50610283600480360360808110156102a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356111aa565b3480156102da57600080fd5b50610283600480360360808110156102f157600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611319565b34801561032357600080fd5b506102836004803603608081101561033a57600080fd5b506001600160a01b03813581169160208101359160408201351690606001356113f1565b610283600480360360c081101561037457600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a0013561145e565b3480156103b657600080fd5b50610283600480360360608110156103cd57600080fd5b506001600160a01b0381358116916020810135916040909101351661175d565b3480156103f957600080fd5b506102836004803603608081101561041057600080fd5b506001600160a01b03813581169160208101359160408201351690606001356117da565b34801561044057600080fd5b50610283600480360360a081101561045757600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160809091013516611833565b34801561049157600080fd5b50610283600480360360a08110156104a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611906565b3480156104e257600080fd5b50610283600480360360808110156104f957600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611b06565b34801561052b57600080fd5b506102836004803603606081101561054257600080fd5b506001600160a01b03813581169160208101359160409091013516611b69565b34801561056e57600080fd5b506102836004803603608081101561058557600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611bc9565b3480156105b757600080fd5b50610283600480360360808110156105ce57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611dbc565b34801561060057600080fd5b506102836004803603606081101561061757600080fd5b506001600160a01b03813581169160208101359091169060400135612195565b34801561064357600080fd5b5061067a6004803603606081101561065a57600080fd5b506001600160a01b038135811691602081013591604090910135166121f5565b60408051918252519081900360200190f35b34801561069857600080fd5b50610283600480360360808110156106af57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561227c565b3480156106e157600080fd5b50610283600480360360a08110156106f857600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356122fc565b34801561073057600080fd5b506102836004803603608081101561074757600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612677565b34801561077957600080fd5b506102836004803603606081101561079057600080fd5b506001600160a01b038135169060208101359060400135612685565b3480156107b857600080fd5b50610283600480360360808110156107cf57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156126d3565b34801561080357600080fd5b506102836004803603608081101561081a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356128e0565b34801561084857600080fd5b50610283600480360360a081101561085f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612936565b34801561089757600080fd5b50610283600480360360408110156108ae57600080fd5b506001600160a01b0381358116916020013516612bf7565b610283600480360360408110156108dc57600080fd5b506001600160a01b0381358116916020013516612c6b565b34801561090057600080fd5b50610283600480360360c081101561091757600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612e50565b34801561095557600080fd5b506102836004803603604081101561096c57600080fd5b506001600160a01b038135811691602001351661311f565b34801561099057600080fd5b50610283600480360360808110156109a757600080fd5b506001600160a01b0381358116916020810135916040820135169060600135613177565b3480156109d757600080fd5b50610283600480360360a08110156109ee57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356131d0565b348015610a2657600080fd5b50610283600480360360c0811015610a3d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135613463565b348015610a7b57600080fd5b5061028360048036036060811015610a9257600080fd5b506001600160a01b038135811691602081013590911690604001356137f9565b348015610abe57600080fd5b50610b11600480360360e0811015610ad557600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135613859565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610b4057600080fd5b5061028360048036036060811015610b5757600080fd5b506001600160a01b038135811691602081013590911690604001356139dc565b348015610b8357600080fd5b506102836004803603610100811015610b9b57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613be2565b348015610beb57600080fd5b5061067a6004803603610100811015610c0357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613edf565b61028360048036036060811015610c5d57600080fd5b506001600160a01b03813581169160208101359091169060400135613f0a565b61067a600480360360c0811015610c9357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a001356140e0565b348015610cd557600080fd5b50610283600480360360c0811015610cec57600080fd5b506001600160a01b0381358116916020810135821691604082013591606081013591608082013515159160a0013516614107565b348015610d2c57600080fd5b5061028360048036036060811015610d4357600080fd5b506001600160a01b038135811691602081013590911690604001356141db565b61028360048036036080811015610d7957600080fd5b506001600160a01b0381358116916020810135821691604082013591606001351661423b565b348015610dab57600080fd5b50610dd260048036036020811015610dc257600080fd5b50356001600160a01b031661430d565b604080516001600160a01b039092168252519081900360200190f35b6000836001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2957600080fd5b505afa158015610e3d573d6000803e3d6000fd5b505050506040513d6020811015610e5357600080fd5b505160408051632726b07360e01b81526004810185905290519192506000916001600160a01b03871691632726b073916024808301926020929190829003018186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6020811015610ecc57600080fd5b505160408051632c2cb9fd60e01b81526004810186905290519192506000916001600160a01b03881691632c2cb9fd916024808301926020929190829003018186803b158015610f1b57600080fd5b505afa158015610f2f573d6000803e3d6000fd5b505050506040513d6020811015610f4557600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b158015610f9957600080fd5b505afa158015610fad573d6000803e3d6000fd5b505050506040513d6040811015610fc357600080fd5b506020908101516040805163040b0d8960e51b81526004810189905290519193506000926001600160a01b038b1692638161b120926024808201939291829003018186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b505190506001600160a01b0381163014806110db5750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d60208110156110d557600080fd5b50516001145b1561110b576110f687856110f18888898961438a565b6139dc565b61110688876000856000036128e0565b6111a0565b61111c87306110f18830898961438a565b60408051637608870360e01b8152600481018590526001600160a01b0386811660248301523060448301819052606483015260006084830181905285810360a484015292519088169263760887039260c4808201939182900301818387803b15801561118757600080fd5b505af115801561119b573d6000803e3d6000fd5b505050505b5050505050505050565b6111b6848330846113f1565b6040805163ef693bed60e01b81523060048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50505050826001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561125757600080fd5b505af115801561126b573d6000803e3d6000fd5b505050506040513d602081101561128157600080fd5b505160408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611312573d6000803e3d6000fd5b5050505050565b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561136757600080fd5b505afa15801561137b573d6000803e3d6000fd5b505050506040513d602081101561139157600080fd5b50516001600160a01b0316146113e0576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484610dee565b50505050565b604080516313771f0760e31b8152600481018590526001600160a01b03848116602483015260448201849052915191861691639bb8f8389160648082019260009290919082900301818387803b15801561144a57600080fd5b505af11580156111a0573d6000803e3d6000fd5b6000866001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114a457600080fd5b505afa1580156114b8573d6000803e3d6000fd5b505050506040513d60208110156114ce57600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038a16916336569e77916004808301926020929190829003018186803b15801561151657600080fd5b505afa15801561152a573d6000803e3d6000fd5b505050506040513d602081101561154057600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038b1691632c2cb9fd916024808301926020929190829003018186803b15801561158f57600080fd5b505afa1580156115a3573d6000803e3d6000fd5b505050506040513d60208110156115b957600080fd5b505190506115c78784612c6b565b6115e789866115d534614558565b6115e2868d89888c6145a3565b6128e0565b6115fb8986306115f688614720565b6117da565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b15801561164b57600080fd5b505afa15801561165f573d6000803e3d6000fd5b505050506040513d602081101561167557600080fd5b50516116ec57816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156116d357600080fd5b505af11580156116e7573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561173a57600080fd5b505af115801561174e573d6000803e3d6000fd5b50505050505050505050505050565b826001600160a01b031663fcafcc6883836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b50505050505050565b60408051637cf986db60e11b8152600481018590526001600160a01b0384811660248301526044820184905291519186169163f9f30db69160648082019260009290919082900301818387803b15801561144a57600080fd5b806001600160a01b0316856001600160a01b0316638161b120856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561188157600080fd5b505afa158015611895573d6000803e3d6000fd5b505050506040513d60208110156118ab57600080fd5b50516001600160a01b0316146118fa576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b61131285858585611dbc565b611912843084846126d3565b846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561194b57600080fd5b505afa15801561195f573d6000803e3d6000fd5b505050506040513d602081101561197557600080fd5b505160408051632c2cb9fd60e01b81526004810186905290516001600160a01b039283169263760887039290891691632c2cb9fd91602480820192602092909190829003018186803b1580156119ca57600080fd5b505afa1580156119de573d6000803e3d6000fd5b505050506040513d60208110156119f457600080fd5b505160408051632726b07360e01b81526004810188905290516001600160a01b038a1691632726b073916024808301926020929190829003018186803b158015611a3d57600080fd5b505afa158015611a51573d6000803e3d6000fd5b505050506040513d6020811015611a6757600080fd5b50513080611a7d611a788b8a61473d565b614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050505050505050565b611b1b848330611b16878661473d565b6113f1565b6040805163ef693bed60e01b81523360048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561144a57600080fd5b826001600160a01b0316631b0dbf7283836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000846001600160a01b031663c4552791836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611c2157600080fd5b505afa158015611c35573d6000803e3d6000fd5b505050506040513d6020811015611c4b57600080fd5b505190506001600160a01b0381161580611cdb5750816001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca357600080fd5b505afa158015611cb7573d6000803e3d6000fd5b505050506040513d6020811015611ccd57600080fd5b50516001600160a01b031614155b15611db157813b8015611d29576040805162461bcd60e51b8152602060048201526011602482015270111cdd0b5a5ccb584b58dbdb9d1c9858dd607a1b604482015290519081900360640190fd5b856001600160a01b031663f3701da2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b505050506040513d6020811015611dab57600080fd5b50519150505b61131284848361175d565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015611df757600080fd5b505afa158015611e0b573d6000803e3d6000fd5b505050506040513d6020811015611e2157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03881691632726b073916024808301926020929190829003018186803b158015611e7057600080fd5b505afa158015611e84573d6000803e3d6000fd5b505050506040513d6020811015611e9a57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b03891691632c2cb9fd916024808301926020929190829003018186803b158015611ee957600080fd5b505afa158015611efd573d6000803e3d6000fd5b505050506040513d6020811015611f1357600080fd5b50516040805163040b0d8960e51b81526004810188905290519192506000916001600160a01b038a1691638161b120916024808301926020929190829003018186803b158015611f6257600080fd5b505afa158015611f76573d6000803e3d6000fd5b505050506040513d6020811015611f8c57600080fd5b505190506001600160a01b0381163014806120295750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b158015611ff957600080fd5b505afa15801561200d573d6000803e3d6000fd5b505050506040513d602081101561202357600080fd5b50516001145b156120cd576120398784876139dc565b611106888760006115e288896001600160a01b0316636c25b3468a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561209a57600080fd5b505afa1580156120ae573d6000803e3d6000fd5b505050506040513d60208110156120c457600080fd5b505189896147bc565b6120d88730876139dc565b836001600160a01b031663760887038385303060006121068b676765c793fa10079d601b1b8e028c8c6147bc565b6040518763ffffffff1660e01b815260040180878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561118757600080fd5b826001600160a01b031663b68f400483836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051636090dec560e01b8152600481018490526001600160a01b0383811660248301529151600092861691636090dec591604480830192602092919082900301818787803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d602081101561227257600080fd5b5051949350505050565b6000612288848361473d565b90506122a2858461229884614558565b60000360006128e0565b6122ae858430846113f1565b6040805163ef693bed60e01b81523360048201526024810184905290516001600160a01b0386169163ef693bed91604480830192600092919082900301818387803b158015611ae757600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d602081101561236157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b1580156123b057600080fd5b505afa1580156123c4573d6000803e3d6000fd5b505050506040513d60208110156123da57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561242957600080fd5b505afa15801561243d573d6000803e3d6000fd5b505050506040513d602081101561245357600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156124a757600080fd5b505afa1580156124bb573d6000803e3d6000fd5b505050506040513d60408110156124d157600080fd5b506020015190506124e987846110f18782808861438a565b61250389876124f788614558565b600003846000036128e0565b61250f898730886113f1565b6040805163ef693bed60e01b81523060048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b15801561255d57600080fd5b505af1158015612571573d6000803e3d6000fd5b50505050876001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156125b057600080fd5b505af11580156125c4573d6000803e3d6000fd5b505050506040513d60208110156125da57600080fd5b505160408051632e1a7d4d60e01b81526004810188905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b15801561262657600080fd5b505af115801561263a573d6000803e3d6000fd5b505060405133925087156108fc02915087906000818181858888f1935050505015801561266b573d6000803e3d6000fd5b50505050505050505050565b6111aa848361229884614558565b826001600160a01b031663e50322a283836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b801561288057836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561271457600080fd5b505af1158015612728573d6000803e3d6000fd5b505050506040513d602081101561273e57600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b15801561279657600080fd5b505af11580156127aa573d6000803e3d6000fd5b50505050836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b505050506040513d602081101561281357600080fd5b50516040805163095ea7b360e01b81526001600160a01b038781166004830152602482018690529151919092169163095ea7b391604480830192600092919082900301818387803b15801561286757600080fd5b505af115801561287b573d6000803e3d6000fd5b505050505b836001600160a01b0316633b4da69f84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561144a57600080fd5b836001600160a01b03166345e6bdcd8484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561144a57600080fd5b6000856001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561297c57600080fd5b505afa158015612990573d6000803e3d6000fd5b505050506040513d60208110156129a657600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038916916336569e77916004808301926020929190829003018186803b1580156129ee57600080fd5b505afa158015612a02573d6000803e3d6000fd5b505050506040513d6020811015612a1857600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b158015612a6757600080fd5b505afa158015612a7b573d6000803e3d6000fd5b505050506040513d6020811015612a9157600080fd5b50519050612aa9888660006115e2868c89888c6145a3565b612ab88886306115f688614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015612b0857600080fd5b505afa158015612b1c573d6000803e3d6000fd5b505050506040513d6020811015612b3257600080fd5b5051612ba957816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612b9057600080fd5b505af1158015612ba4573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663dc4d20fa826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b505af1158015612c63573d6000803e3d6000fd5b505050505050565b816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612ca657600080fd5b505af1158015612cba573d6000803e3d6000fd5b505050506040513d6020811015612cd057600080fd5b505160408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b158015612d1657600080fd5b505af1158015612d2a573d6000803e3d6000fd5b5050505050816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d6a57600080fd5b505af1158015612d7e573d6000803e3d6000fd5b505050506040513d6020811015612d9457600080fd5b50516040805163095ea7b360e01b81526001600160a01b0385811660048301523460248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015612de757600080fd5b505af1158015612dfb573d6000803e3d6000fd5b505060408051633b4da69f60e01b81526001600160a01b03858116600483015234602483015291519186169350633b4da69f925060448082019260009290919082900301818387803b158015612c4f57600080fd5b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e9657600080fd5b505afa158015612eaa573d6000803e3d6000fd5b505050506040513d6020811015612ec057600080fd5b50519050612ecf8582846139dc565b6000612edb878561473d565b90506130c58886612eeb84614558565b6000036115e28c6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f2a57600080fd5b505afa158015612f3e573d6000803e3d6000fd5b505050506040513d6020811015612f5457600080fd5b81019080805190602001909291905050508d6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9e57600080fd5b505afa158015612fb2573d6000803e3d6000fd5b505050506040513d6020811015612fc857600080fd5b505160408051633612d9a360e11b81526001600160a01b038b8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561301457600080fd5b505afa158015613028573d6000803e3d6000fd5b505050506040513d602081101561303e57600080fd5b8101908080519060200190929190505050888f6001600160a01b0316632c2cb9fd8e6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b505afa1580156130a8573d6000803e3d6000fd5b505050506040513d60208110156130be57600080fd5b50516147bc565b6130d1888630846113f1565b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0389169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663a3b22fc4826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b604080516305b1fdb160e11b8152600481018590526001600160a01b03848116602483015260448201849052915191861691630b63fb629160648082019260009290919082900301818387803b15801561144a57600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561320b57600080fd5b505afa15801561321f573d6000803e3d6000fd5b505050506040513d602081101561323557600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b15801561328457600080fd5b505afa158015613298573d6000803e3d6000fd5b505050506040513d60208110156132ae57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b1580156132fd57600080fd5b505afa158015613311573d6000803e3d6000fd5b505050506040513d602081101561332757600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b15801561337b57600080fd5b505afa15801561338f573d6000803e3d6000fd5b505050506040513d60408110156133a557600080fd5b506020015190506133bd87846110f18782808861438a565b60006133c9898761473d565b90506133e58a886133d984614558565b600003856000036128e0565b6133f18a8830846113f1565b6040805163ef693bed60e01b81523360048201526024810188905290516001600160a01b038b169163ef693bed91604480830192600092919082900301818387803b15801561343f57600080fd5b505af1158015613453573d6000803e3d6000fd5b5050505050505050505050505050565b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134a957600080fd5b505afa1580156134bd573d6000803e3d6000fd5b505050506040513d60208110156134d357600080fd5b505190506134e28582846139dc565b61369187856134f086614558565b6000036115e28b6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561352f57600080fd5b505afa158015613543573d6000803e3d6000fd5b505050506040513d602081101561355957600080fd5b5051604080516336569e7760e01b815290516001600160a01b038f16916336569e77916004808301926020929190829003018186803b15801561359b57600080fd5b505afa1580156135af573d6000803e3d6000fd5b505050506040513d60208110156135c557600080fd5b505160408051633612d9a360e11b81526001600160a01b038a8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561361157600080fd5b505afa158015613625573d6000803e3d6000fd5b505050506040513d602081101561363b57600080fd5b8101908080519060200190929190505050878e6001600160a01b0316632c2cb9fd8d6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b61369d878530866113f1565b6040805163ef693bed60e01b81523060048201526024810185905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b1580156136eb57600080fd5b505af11580156136ff573d6000803e3d6000fd5b50505050856001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050506040513d602081101561376857600080fd5b505160408051632e1a7d4d60e01b81526004810186905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156137b457600080fd5b505af11580156137c8573d6000803e3d6000fd5b505060405133925085156108fc02915085906000818181858888f193505050501580156111a0573d6000803e3d6000fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051638c4c280160e01b8152306004820152905160009182916001600160a01b03891691638c4c2801916024808301926020929190829003018186803b1580156138a457600080fd5b505afa1580156138b8573d6000803e3d6000fd5b505050506040513d60208110156138ce57600080fd5b505191506001600160a01b0382166138ec576138e98761430d565b91505b866001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561392757600080fd5b505af115801561393b573d6000803e3d6000fd5b505050506040513d602081101561395157600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018890529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156139a557600080fd5b505af11580156139b9573d6000803e3d6000fd5b505050506139ce898989898989896000613edf565b905097509795505050505050565b826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613a1757600080fd5b505af1158015613a2b573d6000803e3d6000fd5b505050506040513d6020811015613a4157600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b158015613a9957600080fd5b505af1158015613aad573d6000803e3d6000fd5b50505050826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613aec57600080fd5b505af1158015613b00573d6000803e3d6000fd5b505050506040513d6020811015613b1657600080fd5b50516040805163095ea7b360e01b81526001600160a01b038681166004830152602482018590529151919092169163095ea7b391604480830192600092919082900301818387803b158015613b6a57600080fd5b505af1158015613b7e573d6000803e3d6000fd5b50505050826001600160a01b0316633b4da69f83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000886001600160a01b0316632726b073866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d6020811015613c5257600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038c16916336569e77916004808301926020929190829003018186803b158015613c9a57600080fd5b505afa158015613cae573d6000803e3d6000fd5b505050506040513d6020811015613cc457600080fd5b505160408051632c2cb9fd60e01b81526004810189905290519192506000916001600160a01b038d1691632c2cb9fd916024808301926020929190829003018186803b158015613d1357600080fd5b505afa158015613d27573d6000803e3d6000fd5b505050506040513d6020811015613d3d57600080fd5b50519050613d4d898488876126d3565b613d6c8b88613d5f611a788d8b61473d565b6115e2868f89888d6145a3565b613d7b8b88306115f689614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038a81166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015613dcb57600080fd5b505afa158015613ddf573d6000803e3d6000fd5b505050506040513d6020811015613df557600080fd5b5051613e6c57816001600160a01b031663a3b22fc4896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015613e5357600080fd5b505af1158015613e67573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b158015613eba57600080fd5b505af1158015613ece573d6000803e3d6000fd5b505050505050505050505050505050565b6000613eec8986306121f5565b9050613efe8989898985898989613be2565b98975050505050505050565b613f148230612c6b565b826001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015613f4d57600080fd5b505afa158015613f61573d6000803e3d6000fd5b505050506040513d6020811015613f7757600080fd5b505160408051632c2cb9fd60e01b81526004810184905290516001600160a01b039283169263760887039290871691632c2cb9fd91602480820192602092909190829003018186803b158015613fcc57600080fd5b505afa158015613fe0573d6000803e3d6000fd5b505050506040513d6020811015613ff657600080fd5b505160408051632726b07360e01b81526004810186905290516001600160a01b03881691632726b073916024808301926020929190829003018186803b15801561403f57600080fd5b505afa158015614053573d6000803e3d6000fd5b505050506040513d602081101561406957600080fd5b5051308061407634614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b1580156117bd57600080fd5b60006140ed8784306121f5565b90506140fd87878787858761145e565b9695505050505050565b806001600160a01b0316866001600160a01b0316638161b120866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561415557600080fd5b505afa158015614169573d6000803e3d6000fd5b505050506040513d602081101561417f57600080fd5b50516001600160a01b0316146141ce576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b612c638686868686611906565b826001600160a01b0316637e348b7d83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561428957600080fd5b505afa15801561429d573d6000803e3d6000fd5b505050506040513d60208110156142b357600080fd5b50516001600160a01b031614614302576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484613f0a565b60408051631060930d60e01b815230600482015290516000916001600160a01b03841691631060930d9160248082019260209290919082900301818787803b15801561435857600080fd5b505af115801561436c573d6000803e3d6000fd5b505050506040513d602081101561438257600080fd5b505192915050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b1580156143d157600080fd5b505afa1580156143e5573d6000803e3d6000fd5b505050506040513d60a08110156143fb57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561445257600080fd5b505afa158015614466573d6000803e3d6000fd5b505050506040513d604081101561447c57600080fd5b5060209081015160408051633612d9a360e11b81526001600160a01b038a811660048301529151929450600093918b1692636c25b34692602480840193919291829003018186803b1580156144d057600080fd5b505afa1580156144e4573d6000803e3d6000fd5b505050506040513d60208110156144fa57600080fd5b50519050600061451361450d84866148ec565b83614947565b9050676765c793fa10079d601b1b810494508061453b86676765c793fa10079d601b1b6148ec565b10614546578461454b565b846001015b9998505050505050505050565b80600081121561459e576040805162461bcd60e51b815260206004820152600c60248201526b696e742d6f766572666c6f7760a01b604482015290519081900360640190fd5b919050565b600080856001600160a01b03166344e2a5a8856040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156145ec57600080fd5b505af1158015614600573d6000803e3d6000fd5b505050506040513d602081101561461657600080fd5b505160408051633612d9a360e11b81526001600160a01b0388811660048301529151929350600092918a1691636c25b34691602480820192602092909190829003018186803b15801561466857600080fd5b505afa15801561467c573d6000803e3d6000fd5b505050506040513d602081101561469257600080fd5b505190506146ab84676765c793fa10079d601b1b6148ec565b811015614715576146e1826146d46146ce87676765c793fa10079d601b1b6148ec565b84614947565b816146db57fe5b04614558565b92506146f884676765c793fa10079d601b1b6148ec565b61470284846148ec565b1061470d5782614712565b826001015b92505b505095945050505050565b600061473782676765c793fa10079d601b1b6148ec565b92915050565b60006147b582846001600160a01b031663b3bcfa826040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561477e57600080fd5b505af1158015614792573d6000803e3d6000fd5b505050506040513d60208110156147a857600080fd5b5051601203600a0a6148ec565b9392505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b15801561480357600080fd5b505afa158015614817573d6000803e3d6000fd5b505050506040513d60a081101561482d57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561488457600080fd5b505afa158015614898573d6000803e3d6000fd5b505050506040513d60408110156148ae57600080fd5b506020015190506148c18287816146db57fe5b9250808311156148dc576148d481614558565b6000036148e1565b826000035b979650505050505050565b60008115806149075750508082028282828161490457fe5b04145b614737576040805162461bcd60e51b815260206004820152600c60248201526b6d756c2d6f766572666c6f7760a01b604482015290519081900360640190fd5b80820382811115614737576040805162461bcd60e51b815260206004820152600c60248201526b7375622d6f766572666c6f7760a01b604482015290519081900360640190fdfea265627a7a7231582012dcfe4bf58005e81f7eafd7f0b120bebf5a4e6adcf218708bad72768b5c6e4e64736f6c634300050c0032", + "nonce": "1" + }, + "0x9759a6ac90977b93b58547b4a71c78317f391a28": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063957aa58c11610066578063957aa58c1461017e5780639c52a7f11461019c578063bf353dbb146101e0578063ef693bed14610238578063f4b9fa751461028657610093565b806336569e77146100985780633b4da69f146100e257806365fae35e146101305780636924500914610174575b600080fd5b6100a06102d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61012e600480360360408110156100f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506102f6565b005b6101726004803603602081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f8565b005b61017c610626565b005b610186610717565b6040518082815260200191505060405180910390f35b6101de600480360360208110156101b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061071d565b005b610222600480360360208110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084b565b6040518082815260200191505060405180910390f35b6102846004803603604081101561024e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610863565b005b61028e610add565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b308461034c6b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146105ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006003819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b60035481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b6001600354146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4461694a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b33306109316b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156109cd57600080fd5b505af11580156109e1573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821480610b205750828283850292508281610b1d57fe5b04145b610b2957600080fd5b9291505056fea265627a7a7231582073556d6c1e4fe23e478f0dc378056d7722545a3e43c977fa340ddc81d62345c864736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6": { + "balance": "0x0", + "code": "0x60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461008f5780631cff79cd146100b05780631f6a1eb91461011c57806360c7d295146101c95780637a9e5e4b146101fa5780638da5cb5b1461021b578063948f507614610230578063bf7e214f14610265575b005b34801561009b57600080fd5b5061008d600160a060020a036004351661027a565b60408051602060046024803582810135601f810185900485028601850190965285855261010a958335600160a060020a03169536956044949193909101919081908401838280828437509497506102f89650505050505050565b60408051918252519081900360200190f35b6040805160206004803580820135601f81018490048402850184019095528484526101a694369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103be9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101d557600080fd5b506101de6105ce565b60408051600160a060020a039092168252519081900360200190f35b34801561020657600080fd5b5061008d600160a060020a03600435166105dd565b34801561022757600080fd5b506101de610657565b34801561023c57600080fd5b50610251600160a060020a0360043516610666565b604080519115158252519081900360200190f35b34801561027157600080fd5b506101de61072d565b61029033600035600160e060020a03191661073c565b151561029b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b600061031033600035600160e060020a03191661073c565b151561031b57600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a038516151561038a57600080fd5b60206000855160208701886113885a03f460005193508015600181146103af576103b4565b600080fd5b5050505092915050565b6002546040517f8bf4515c0000000000000000000000000000000000000000000000000000000081526020600482018181528551602484015285516000948594600160a060020a0390911693638bf4515c93899390928392604490910191908501908083838b5b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561048957600080fd5b505af115801561049d573d6000803e3d6000fd5b505050506040513d60208110156104b357600080fd5b50519150600160a060020a03821615156105bb576002546040517f7ed0c3b2000000000000000000000000000000000000000000000000000000008152602060048201818152875160248401528751600160a060020a0390941693637ed0c3b293899383926044909201919085019080838360005b83811015610540578181015183820152602001610528565b50505050905090810190601f16801561056d5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505191505b6105c582846102f8565b90509250929050565b600254600160a060020a031681565b6105f333600035600160e060020a03191661073c565b15156105fe57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b600061067e33600035600160e060020a03191661073c565b151561068957600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a03841615156106f857600080fd5b60028054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff19909116179055600192505050919050565b600054600160a060020a031681565b600030600160a060020a031683600160a060020a031614156107605750600161084a565b600154600160a060020a038481169116141561077e5750600161084a565b600054600160a060020a031615156107985750600061084a565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301523081166024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505190505b929150505600a165627a7a72305820e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e10029", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be" + } + }, + "0xbaf6dc2e647aeb6f510f9e318856a1bcd66c5e19": { + "balance": "0x48b70935a04104bc", + "nonce": "11402" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x33cb67fca946d8da4bc1d", + "code": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029", + "nonce": "1", + "storage": { + "0x1442c20decac5e9285a003f6453d0611949f802121acdd6ff5a704143dd017db": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8629dae9a04a429781ee2d74cc5f87aff82085ecefb8c4f0101ac2b519e300e1": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc92c3a279814545c4590501add24843ce5413758f3869cb4885635cbbdbbaa51": "0x0000000000000000000000000000000000000000000075b6c54d53d2a2d6d3a7" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "balance": "0x71afd498d0014", + "code": "0x6080604052600436106101dc5760003560e01c8063affed0e011610102578063e19a9dd911610095578063f08a032311610064578063f08a032314611647578063f698da2514611698578063f8dc5dd9146116c3578063ffa1ad741461173e57610231565b8063e19a9dd91461139b578063e318b52b146113ec578063e75235b81461147d578063e86637db146114a857610231565b8063cc2f8452116100d1578063cc2f8452146110e8578063d4d9bdcd146111b5578063d8d11f78146111f0578063e009cfde1461132a57610231565b8063affed0e014610d94578063b4faba0914610dbf578063b63e800d14610ea7578063c4ca3a9c1461101757610231565b80635624b25b1161017a5780636a761202116101495780636a761202146109945780637d83297414610b50578063934f3a1114610bbf578063a0e67e2b14610d2857610231565b80635624b25b146107fb5780635ae6bd37146108b9578063610b592514610908578063694e80c31461095957610231565b80632f54bf6e116101b65780632f54bf6e146104d35780633408e4701461053a578063468721a7146105655780635229073f1461067a57610231565b80630d582f131461029e57806312fb68e0146102f95780632d9ad53d1461046c57610231565b36610231573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d346040518082815260200191505060405180910390a2005b34801561023d57600080fd5b5060007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b905080548061027257600080f35b36600080373360601b365260008060143601600080855af13d6000803e80610299573d6000fd5b3d6000f35b3480156102aa57600080fd5b506102f7600480360360408110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ce565b005b34801561030557600080fd5b5061046a6004803603608081101561031c57600080fd5b81019080803590602001909291908035906020019064010000000081111561034357600080fd5b82018360208201111561035557600080fd5b8035906020019184600183028401116401000000008311171561037757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103da57600080fd5b8201836020820111156103ec57600080fd5b8035906020019184600183028401116401000000008311171561040e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611bbe565b005b34801561047857600080fd5b506104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612440565b60405180821515815260200191505060405180910390f35b3480156104df57600080fd5b50610522600480360360208110156104f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612512565b60405180821515815260200191505060405180910390f35b34801561054657600080fd5b5061054f6125e4565b6040518082815260200191505060405180910390f35b34801561057157600080fd5b506106626004803603608081101561058857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105cf57600080fd5b8201836020820111156105e157600080fd5b8035906020019184600183028401116401000000008311171561060357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506125f1565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506107776004803603608081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106e457600080fd5b8201836020820111156106f657600080fd5b8035906020019184600183028401116401000000008311171561071857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506127d7565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561080757600080fd5b5061083e6004803603604081101561081e57600080fd5b81019080803590602001909291908035906020019092919050505061280d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087e578082015181840152602081019050610863565b50505050905090810190601f1680156108ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c557600080fd5b506108f2600480360360208110156108dc57600080fd5b8101908080359060200190929190505050612894565b6040518082815260200191505060405180910390f35b34801561091457600080fd5b506109576004803603602081101561092b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b005b34801561096557600080fd5b506109926004803603602081101561097c57600080fd5b8101908080359060200190929190505050612c3e565b005b610b3860048036036101408110156109ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109f257600080fd5b820183602082011115610a0457600080fd5b80359060200191846001830284011164010000000083111715610a2657600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610ab257600080fd5b820183602082011115610ac457600080fd5b80359060200191846001830284011164010000000083111715610ae657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612d78565b60405180821515815260200191505060405180910390f35b348015610b5c57600080fd5b50610ba960048036036040811015610b7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132b5565b6040518082815260200191505060405180910390f35b348015610bcb57600080fd5b50610d2660048036036060811015610be257600080fd5b810190808035906020019092919080359060200190640100000000811115610c0957600080fd5b820183602082011115610c1b57600080fd5b80359060200191846001830284011164010000000083111715610c3d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ca057600080fd5b820183602082011115610cb257600080fd5b80359060200191846001830284011164010000000083111715610cd457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506132da565b005b348015610d3457600080fd5b50610d3d613369565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d80578082015181840152602081019050610d65565b505050509050019250505060405180910390f35b348015610da057600080fd5b50610da9613512565b6040518082815260200191505060405180910390f35b348015610dcb57600080fd5b50610ea560048036036040811015610de257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610e1f57600080fd5b820183602082011115610e3157600080fd5b80359060200191846001830284011164010000000083111715610e5357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613518565b005b348015610eb357600080fd5b506110156004803603610100811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846020830284011164010000000083111715610f1c57600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f6757600080fd5b820183602082011115610f7957600080fd5b80359060200191846001830284011164010000000083111715610f9b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061353a565b005b34801561102357600080fd5b506110d26004803603608081101561103a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561108157600080fd5b82018360208201111561109357600080fd5b803590602001918460018302840111640100000000831117156110b557600080fd5b9091929391929390803560ff1690602001909291905050506136f8565b6040518082815260200191505060405180910390f35b3480156110f457600080fd5b506111416004803603604081101561110b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613820565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b838110156111a0578082015181840152602081019050611185565b50505050905001935050505060405180910390f35b3480156111c157600080fd5b506111ee600480360360208110156111d857600080fd5b8101908080359060200190929190505050613a12565b005b3480156111fc57600080fd5b50611314600480360361014081101561121457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561125b57600080fd5b82018360208201111561126d57600080fd5b8035906020019184600183028401116401000000008311171561128f57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb1565b6040518082815260200191505060405180910390f35b34801561133657600080fd5b506113996004803603604081101561134d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bde565b005b3480156113a757600080fd5b506113ea600480360360208110156113be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f6f565b005b3480156113f857600080fd5b5061147b6004803603606081101561140f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ff3565b005b34801561148957600080fd5b50611492614665565b6040518082815260200191505060405180910390f35b3480156114b457600080fd5b506115cc60048036036101408110156114cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561151357600080fd5b82018360208201111561152557600080fd5b8035906020019184600183028401116401000000008311171561154757600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061466f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561160c5780820151818401526020810190506115f1565b50505050905090810190601f1680156116395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561165357600080fd5b506116966004803603602081101561166a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614817565b005b3480156116a457600080fd5b506116ad614878565b6040518082815260200191505060405180910390f35b3480156116cf57600080fd5b5061173c600480360360608110156116e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506148f6565b005b34801561174a57600080fd5b50611753614d29565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611793578082015181840152602081019050611778565b50505050905090810190601f1680156117c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6117d6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118405750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561187857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414611bba57611bb981612c3e565b5b5050565b611bd2604182614e0590919063ffffffff16565b82511015611c48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808060008060005b8681101561243457611c648882614e3f565b80945081955082965050505060008460ff16141561206d578260001c9450611c96604188614e0590919063ffffffff16565b8260001c1015611d0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8751611d2760208460001c614e6e90919063ffffffff16565b1115611d9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006020838a01015190508851611dd182611dc360208760001c614e6e90919063ffffffff16565b614e6e90919063ffffffff16565b1115611e45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ee7578082015181840152602081019050611ecc565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611f4d578082015181840152602081019050611f32565b50505050905090810190601f168015611f7a5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015611f9957600080fd5b505afa158015611fad573d6000803e3d6000fd5b505050506040513d6020811015611fc357600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506122b2565b60018460ff161415612181578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061210a57506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b61217c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6122b1565b601e8460ff1611156122495760018a60405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012060048603858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612238573d6000803e3d6000fd5b5050506020604051035194506122b0565b60018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156122a3573d6000803e3d6000fd5b5050506020604051035194505b5b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161180156123795750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156123b25750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b612424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323600000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8495508080600101915050611c52565b50505050505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600173ffffffffffffffffffffffffffffffffffffffff161415801561250b5750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125dd5750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000804690508091505090565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126bc5750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61272e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61273b858585855a614e8d565b9050801561278b573373ffffffffffffffffffffffffffffffffffffffff167f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb860405160405180910390a26127cf565b3373ffffffffffffffffffffffffffffffffffffffff167facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37560405160405180910390a25b949350505050565b600060606127e7868686866125f1565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006020830267ffffffffffffffff8111801561282b57600080fd5b506040519080825280601f01601f19166020018201604052801561285e5781602001600182028036833780820191505090505b50905060005b8381101561288957808501548060208302602085010152508080600101915050612864565b508091505092915050565b60076020528060005260406000206000915090505481565b6128b4614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561291e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b612990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612c46614d62565b600354811115612cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811015612d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b6000806000612d928e8e8e8e8e8e8e8e8e8e60055461466f565b905060056000815480929190600101919050555080805190602001209150612dbb8282866132da565b506000612dc6614ed9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612fac578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b8152600401808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c8152602001806020018a6001811115612e6957fe5b81526020018981526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528d8d82818152602001925080828437600081840152601f19601f820116905080830192505050838103825285818151815260200191508051906020019080838360005b83811015612f3b578082015181840152602081019050612f20565b50505050905090810190601f168015612f685780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050600060405180830381600087803b158015612f9357600080fd5b505af1158015612fa7573d6000803e3d6000fd5b505050505b6101f4612fd36109c48b01603f60408d0281612fc457fe5b04614f0a90919063ffffffff16565b015a1015613049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005a90506130b28f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008d146130a7578e6130ad565b6109c45a035b614e8d565b93506130c75a82614f2490919063ffffffff16565b905083806130d6575060008a14155b806130e2575060008814155b613154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008089111561316e5761316b828b8b8b8b614f44565b90505b84156131b8577f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e8482604051808381526020018281526020019250505060405180910390a16131f8565b7f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d238482604051808381526020018281526020019250505060405180910390a15b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146132a4578073ffffffffffffffffffffffffffffffffffffffff16639327136883856040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561328b57600080fd5b505af115801561329f573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b6000600454905060008111613357576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61336384848484611bbe565b50505050565b6060600060035467ffffffffffffffff8111801561338657600080fd5b506040519080825280602002602001820160405280156133b55781602001602082028036833780820191505090505b50905060008060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613509578083838151811061346057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061341f565b82935050505090565b60055481565b600080825160208401855af4806000523d6020523d600060403e60403d016000fd5b6135858a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508961514a565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135c3576135c28461564a565b5b6136118787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615679565b600082111561362b5761362982600060018685614f44565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b8960405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281038252878782818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a250505050505050505050565b6000805a905061374f878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050865a614e8d565b61375857600080fd5b60005a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137e55780820151818401526020810190506137ca565b50505050905090810190601f1680156138125780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b606060008267ffffffffffffffff8111801561383b57600080fd5b5060405190808252806020026020018201604052801561386a5781602001602082028036833780820191505090505b509150600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561393d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561394857508482105b15613a03578084838151811061395a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506138d3565b80925081845250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16817ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c60405160405180910390a350565b6000613bc68c8c8c8c8c8c8c8c8c8c8c61466f565b8051906020012090509b9a5050505050505050505050565b613be6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613c505750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b613cc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613dc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613f77614d62565b60007f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b90508181557f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa282604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613ffb614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156140655750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561409d57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61410f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561427a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6142ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146143ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405180838380828437808301925050509250505060405180910390208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a815260200189815260200188600181111561470057fe5b81526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b61478c614878565b8360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509b9a5050505050505050505050565b61481f614d62565b6148288161564a565b7f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921860001b6148a66125e4565b30604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405160208183030381529060405280519060200120905090565b6148fe614d62565b806001600354031015614979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156149e35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614a55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614b55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414614d2457614d2381612c3e565b5b505050565b6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614e03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b565b600080831415614e185760009050614e39565b6000828402905082848281614e2957fe5b0414614e3457600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614e8357600080fd5b8091505092915050565b6000600180811115614e9b57fe5b836001811115614ea757fe5b1415614ec0576000808551602087018986f49050614ed0565b600080855160208701888a87f190505b95945050505050565b6000807f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b9050805491505090565b600081831015614f1a5781614f1c565b825b905092915050565b600082821115614f3357600080fd5b600082840390508091505092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614f815782614f83565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561509b57614fed3a8610614fca573a614fcc565b855b614fdf888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050615096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b615140565b6150c0856150b2888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91506150cd8482846158b4565b61513f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5095945050505050565b6000600454146151c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8151811115615239576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018110156152b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006001905060005b83518110156155b65760008482815181106152d057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156153445750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561537c57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156153b457508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b615426576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092505080806001019150506152b9565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b60007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461577b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146158b05761583d8260008360015a614e8d565b6158af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5050565b60008063a9059cbb8484604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050602060008251602084016000896127105a03f13d6000811461595b5760208114615963576000935061596e565b81935061596e565b600051158215171593505b505050939250505056fea26469706673582212203874bcf92e1722cc7bfa0cef1a0985cf0dc3485ba0663db3747ccdf1605df53464736f6c63430007060033", + "nonce": "1" + }, + "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be": { + "balance": "0x13cc5cb7f866bf2a1", + "code": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000023", + "0x311d6f25482807f0b0d46f6fafeb0c07abb26f38af26360b2d841fb5e32d1111": "0x0000000000000000000000002900ac563eab8d2d9da21ceb07a66e3bbe2fbe26", + "0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x58e147b099549d92d3f037e88e03bccd6809c3d28a894f441bc7a049e077b95c": "0x000000000000000000000000bd5b82b95d7c25f5f7767ecbdd5d3ea8fb63c09c", + "0x7feb34d70f880434f7b1e4bb8b4f0e58735b8893360e1666e7cebfad5910ba77": "0x0000000000000000000000004ea32106019d314cd50cd6121d616e511ada7782" + } + } + }, + "config": { + "chainName": "mainnet", + "chainId": 1, + "consensus": "ethash", + "homesteadBlock": 1150000, + "daoForkBlock": 1920000, + "eip150Block": 2463000, + "eip155Block": 2675000, + "byzantiumBlock": 4370000, + "constantinopleBlock": 7280000, + "petersburgBlock": 7280000, + "istanbulBlock": 9069000, + "muirGlacierBlock": 9200000, + "berlinBlock": 12244000, + "londonBlock": 12965000, + "arrowGlacierBlock": 13773000, + "grayGlacierBlock": 15050000, + "terminalTotalDifficulty": null, + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 1681338455, + "cancunTime": 1710338135, + "ethash": {}, + "noPruneContracts": { + "0x00000000219ab540356cbb839cbe05303d7705fa": true + } + }, + "gasLimit": "30000000", + "difficulty": "0" + }, + "context": { + "number": "16494085", + "difficulty": "0", + "timestamp": "1674773399", + "gasLimit": "30000000", + "baseFeePerGas": "26264939160", + "miner": "0xBaF6dC2E647aeb6F510f9e318856A1BCd66C5e19" + }, + "input": "0x02f90433018229ee8459682f008507735940008306a17894ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be80b903c46a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000c0809fd599bfb27f78926f546e1ec2bbb39e7b91e5bdba54be97a16212045210ba7da06354952e8b7662cdc82ce4b6b4a5ffab9fbb58e010d6322a3b7b721d23952f66", + "tracerConfig": { + "includePrecompiles": false + }, + "result": { + "from": "0x519e19eac9ead404343c68224dd2a22c5c25f992", + "gas": "0x6a178", + "gasUsed": "0x51cd6", + "to": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "calls": [ + { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "gas": "0x60615", + "gasUsed": "0x5d0b0", + "to": "0xd9db270c1b5e3bd161e8c8503c55ceabee709552", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "calls": [ + { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "gas": "0x560b3", + "gasUsed": "0x53a37", + "to": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "input": "0x1cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000000000000000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000000", + "calls": [ + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x51f84", + "gasUsed": "0x50d61", + "to": "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038", + "input": "0x1c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000", + "calls": [ + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4fe81", + "gasUsed": "0xa34", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x2726b0730000000000000000000000000000000000000000000000000000000000007587", + "output": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4f2da", + "gasUsed": "0x95e", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x36569e77", + "output": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4e7f3", + "gasUsed": "0x9b6", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x2c2cb9fd0000000000000000000000000000000000000000000000000000000000007587", + "output": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4d333", + "gasUsed": "0x98a", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "input": "0x7bd2bea7", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x4a4fa", + "gasUsed": "0x5da6", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "input": "0xd0e30db0", + "value": "0x1314fb37062980000", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x44751", + "gasUsed": "0x1ba", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "input": "0x7bd2bea7", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x443e1", + "gasUsed": "0x5f64", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "input": "0x095ea7b30000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x3e467", + "gasUsed": "0xcf11", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "input": "0x3b4da69f000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "calls": [ + { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "gas": "0x3b018", + "gasUsed": "0x732c", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x7cdd3fde4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "gas": "0x33c93", + "gasUsed": "0x22f4", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "input": "0x23b872dd000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x30d0f", + "gasUsed": "0xde8c", + "to": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "input": "0x44e2a5a84554482d41000000000000000000000000000000000000000000000000000000", + "output": "0x00000000000000000000000000000000000000000380cda8be5c7905bb99b3dd", + "calls": [ + { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "gas": "0x2eda5", + "gasUsed": "0x2b56", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xd9638d364554482d41000000000000000000000000000000000000000000000000000000", + "output": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e28435600000000000000000000000000000000000000000380ccf64585d61dfc80728d000000000000000000000000000000000000000dee286c5d5714c921f9f6469e00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de5200000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "gas": "0x29b33", + "gasUsed": "0x5a46", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xb65337df4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000a950524441892a31ebddf91d3ceefa04bf4544660000000000000000000000000000000000000000000000b278d6a2e7bf194150", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x23046", + "gasUsed": "0x9e8", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x6c25b346000000000000000000000000dd805914a055a090892158f57dca419e8042746a", + "output": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x221b4", + "gasUsed": "0x9af4", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0x45e6bdcd0000000000000000000000000000000000000000000000000000000000007587000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "calls": [ + { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "gas": "0x20b33", + "gasUsed": "0x7ba9", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x760887034554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x186af", + "gasUsed": "0x83ad", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "input": "0xf9f30db60000000000000000000000000000000000000000000000000000000000007587000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "calls": [ + { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "gas": "0x17b3b", + "gasUsed": "0x6d27", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xbb35783b000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0x1036f", + "gasUsed": "0xa35", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0x4538c4eb000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "type": "STATICCALL" + }, + { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "gas": "0xee07", + "gasUsed": "0xdf71", + "to": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "input": "0xef693bed000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "calls": [ + { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "gas": "0xd6a5", + "gasUsed": "0x2a5b", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "input": "0xbb35783b000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "gas": "0x999d", + "gasUsed": "0x7c65", + "to": "0x6b175474e89094c44da98b954eedeac495271d0f", + "input": "0x40c10f19000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x1314fb37062980000", + "type": "DELEGATECALL" + } + ], + "value": "0x1314fb37062980000", + "type": "CALL" + } + ], + "value": "0x0", + "type": "DELEGATECALL" + } + ], + "value": "0x0", + "type": "CALL" + } +} diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json index 28e47c1deca..0ef24642ea5 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json @@ -1,6 +1,5 @@ { "genesis": { - "baseFeePerGas": "1000000000", "difficulty": "1", "extraData": "0x00000000000000000000000000000000000000000000000000000000000000003623191d4ccfbbdf09e8ebf6382a1f8257417bc10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "gasLimit": "11500000", @@ -44,6 +43,7 @@ "difficulty": "2", "timestamp": "1665537018", "gasLimit": "11511229", + "baseFeePerGas": "1000000000", "miner": "0x0000000000000000000000000000000000000000" }, "input": "0x02f9029d82053980849502f90085010c388d00832dc6c08080b90241608060405234801561001057600080fd5b50600060405161001f906100a2565b604051809103906000f08015801561003b573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff1663c04062266040518163ffffffff1660e01b815260040160006040518083038186803b15801561008457600080fd5b505afa158015610098573d6000803e3d6000fd5b50505050506100af565b610145806100fc83390190565b603f806100bd6000396000f3fe6080604052600080fdfea264697066735822122077f7dbd3450d6e817079cf3fe27107de5768bb3163a402b94e2206b468eb025664736f6c63430008070033608060405234801561001057600080fd5b50610125806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c040622614602d575b600080fd5b60336035565b005b60036002116076576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401606d906097565b60405180910390fd5b565b6000608360128360b5565b9150608c8260c6565b602082019050919050565b6000602082019050818103600083015260ae816078565b9050919050565b600082825260208201905092915050565b7f546869732063616c6c6564206661696c6564000000000000000000000000000060008201525056fea264697066735822122033f8d92e29d467e5ea08d0024eab0b36b86b8cdb3542c6e89dbaabeb8ffaa42064736f6c63430008070033c001a07566181071cabaf58b70fc41557eb813bfc7a24f5c58554e7fed0bf7c031f169a0420af50b5fe791a4d839e181a676db5250b415dfb35cb85d544db7a1475ae2cc", diff --git a/eth/tracers/internal/tracetest/testdata/prestate_tracer/create_existing_contract.json b/eth/tracers/internal/tracetest/testdata/prestate_tracer/create_existing_contract.json index 1d3d5402ddc..d43964ac5f7 100644 --- a/eth/tracers/internal/tracetest/testdata/prestate_tracer/create_existing_contract.json +++ b/eth/tracers/internal/tracetest/testdata/prestate_tracer/create_existing_contract.json @@ -63,7 +63,7 @@ "result": { "0x082d4cdf07f386ffa9258f52a5c49db4ac321ec6": { "balance": "0xc820f93200f4000", - "nonce": 93 + "nonce": 94 }, "0x332b656504f4eabb44c8617a42af37461a34e9dc": { "balance": "0x11faea4f35e5af80000", diff --git a/eth/tracers/internal/tracetest/testdata/prestate_tracer/create_with_value.json b/eth/tracers/internal/tracetest/testdata/prestate_tracer/create_with_value.json new file mode 100644 index 00000000000..ff14d1cf111 --- /dev/null +++ b/eth/tracers/internal/tracetest/testdata/prestate_tracer/create_with_value.json @@ -0,0 +1,86 @@ +{ + "genesis": { + "alloc": { + "0x5124fcc2b3f99f571ad67d075643c743f38f1c34": { + "balance": "0x12a1dab4b5dcf2597", + "nonce": "40990" + }, + "0xa7613d72e7e0c4f9d58a24e40d47449a86c6ac4c": { + "balance": "0x18f039faa5608000" + } + }, + "config": { + "chainName": "mainnet", + "chainId": 1, + "consensus": "ethash", + "homesteadBlock": 1150000, + "daoForkBlock": 1920000, + "eip150Block": 2463000, + "eip155Block": 2675000, + "byzantiumBlock": 4370000, + "constantinopleBlock": 7280000, + "petersburgBlock": 7280000, + "istanbulBlock": 9069000, + "muirGlacierBlock": 9200000, + "berlinBlock": 12244000, + "londonBlock": 12965000, + "arrowGlacierBlock": 13773000, + "grayGlacierBlock": 15050000, + "terminalTotalDifficulty": null, + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 1681338455, + "cancunTime": 1710338135, + "ethash": {}, + "noPruneContracts": { + "0x00000000219ab540356cbb839cbe05303d7705fa": true + } + }, + "gasLimit": "30000000", + "difficulty": "0" + }, + "context": { + "number": "19319637", + "difficulty": "0", + "timestamp": "1709045915", + "gasLimit": "30000000", + "baseFeePerGas": "55017891529", + "miner": "0x5124fcC2B3F99F571AD67D075643C743F38f1C34" + }, + "input": "0x02f924500180830cb5cc8511956555b7831e885880880de0b6b3a7640000b923ef6080604052601760065560186007555f6008555f6009556015600a556015600b55601a600c555f600d55620000676127106200006060c86009600a6200004691906200049d565b620000599066017e9d8602b400620004ad565b906200027a565b906200030d565b601055620000856127106200006060c8620000466009600a6200049d565b601155620000a3612710620000606064620000466009600a6200049d565b601255620000c1612710620000606064620000466009600a6200049d565b6013556015805461ffff60a81b191690555f60168190556017556040516200232f38819003908190833981016040819052620000fd916200058d565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e6200014b83826200067d565b50600f6200015a82826200067d565b50600580546001600160a01b031916331790556200017b6009600a6200049d565b6200018e9066017e9d8602b400620004ad565b335f908152600160208190526040822092909255600390620001b75f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620002153390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200024e6009600a6200049d565b620002619066017e9d8602b400620004ad565b60405190815260200160405180910390a350506200079d565b5f825f036200028b57505f62000307565b5f620002988385620004ad565b905082620002a7858362000749565b14620003045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200030483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200035660201b60201c565b5f8183620003795760405162461bcd60e51b8152600401620002fb919062000769565b505f62000387848662000749565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e457815f1904821115620003c857620003c862000390565b80851615620003d657918102915b93841c9390800290620003a9565b509250929050565b5f82620003fc5750600162000307565b816200040a57505f62000307565b81600181146200042357600281146200042e576200044e565b600191505062000307565b60ff84111562000442576200044262000390565b50506001821b62000307565b5060208310610133831016604e8410600b841016171562000473575081810a62000307565b6200047f8383620003a4565b805f190482111562000495576200049562000390565b029392505050565b5f6200030460ff841683620003ec565b808202811582820484141762000307576200030762000390565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620004f7578181015183820152602001620004dd565b50505f910152565b5f82601f8301126200050f575f80fd5b81516001600160401b03808211156200052c576200052c620004c7565b604051601f8301601f19908116603f01168101908282118183101715620005575762000557620004c7565b8160405283815286602085880101111562000570575f80fd5b62000583846020830160208901620004db565b9695505050505050565b5f80604083850312156200059f575f80fd5b82516001600160401b0380821115620005b6575f80fd5b620005c486838701620004ff565b93506020850151915080821115620005da575f80fd5b50620005e985828601620004ff565b9150509250929050565b600181811c908216806200060857607f821691505b6020821081036200062757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200067857805f5260205f20601f840160051c81016020851015620006545750805b601f840160051c820191505b8181101562000675575f815560010162000660565b50505b505050565b81516001600160401b03811115620006995762000699620004c7565b620006b181620006aa8454620005f3565b846200062d565b602080601f831160018114620006e7575f8415620006cf5750858301515b5f19600386901b1c1916600185901b17855562000741565b5f85815260208120601f198616915b828110156200071757888601518255948401946001909101908401620006f6565b50858210156200073557878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f826200076457634e487b7160e01b5f52601260045260245ffd5b500490565b602081525f825180602084015262000789816040850160208701620004db565b601f01601f19169190910160400192915050565b611b8480620007ab5f395ff3fe608060405260043610610134575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb14610335578063bf474bed14610354578063c9567bf914610369578063d34628cc1461037d578063dd62ed3e1461039c578063ec1f3f63146103e0575f80fd5b8063751039fc146102bd5780637d1db4a5146102d15780638da5cb5b146102e65780638f9a55c01461030c57806395d89b4114610321575f80fd5b8063313ce567116100f9578063313ce567146101ee57806331c2d847146102095780633bbac5791461022a57806351bc3c851461026157806370a0823114610275578063715018a6146102a9575f80fd5b806306fdde031461013f578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506101536103ff565b6040516101609190611647565b60405180910390f35b348015610174575f80fd5b506101886101833660046116ba565b61048f565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60135481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6104a5565b3480156101da575f80fd5b506101886101e93660046116e4565b6104c8565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b50610228610223366004611736565b61052f565b005b348015610235575f80fd5b506101886102443660046117f6565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561026c575f80fd5b506102286105bf565b348015610280575f80fd5b506101ad61028f3660046117f6565b6001600160a01b03165f9081526001602052604090205490565b3480156102b4575f80fd5b5061022861060c565b3480156102c8575f80fd5b5061022861067d565b3480156102dc575f80fd5b506101ad60105481565b3480156102f1575f80fd5b505f546040516001600160a01b039091168152602001610160565b348015610317575f80fd5b506101ad60115481565b34801561032c575f80fd5b50610153610737565b348015610340575f80fd5b5061018861034f3660046116ba565b610746565b34801561035f575f80fd5b506101ad60125481565b348015610374575f80fd5b50610228610752565b348015610388575f80fd5b50610228610397366004611736565b610b34565b3480156103a7575f80fd5b506101ad6103b6366004611811565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103eb575f80fd5b506102286103fa366004611848565b610bb8565b6060600e805461040e9061185f565b80601f016020809104026020016040519081016040528092919081815260200182805461043a9061185f565b80156104855780601f1061045c57610100808354040283529160200191610485565b820191905f5260205f20905b81548152906001019060200180831161046857829003601f168201915b5050505050905090565b5f61049b338484610bfd565b5060015b92915050565b5f6104b26009600a611985565b6104c39066017e9d8602b400611993565b905090565b5f6104d4848484610d20565b610525843361052085604051806060016040528060288152602001611b27602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112c3565b610bfd565b5060019392505050565b5f546001600160a01b031633146105615760405162461bcd60e51b8152600401610558906119aa565b60405180910390fd5b5f5b81518110156105bb575f60045f848481518110610582576105826119df565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610563565b5050565b6005546001600160a01b0316336001600160a01b0316146105de575f80fd5b305f9081526001602052604090205480156105fc576105fc816112fb565b4780156105bb576105bb8161146b565b5f546001600160a01b031633146106355760405162461bcd60e51b8152600401610558906119aa565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106a65760405162461bcd60e51b8152600401610558906119aa565b6106b26009600a611985565b6106c39066017e9d8602b400611993565b6010556106d26009600a611985565b6106e39066017e9d8602b400611993565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107136009600a611985565b6107249066017e9d8602b400611993565b60405190815260200160405180910390a1565b6060600f805461040e9061185f565b5f61049b338484610d20565b5f546001600160a01b0316331461077b5760405162461bcd60e51b8152600401610558906119aa565b601554600160a01b900460ff16156107d55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610558565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905561080730335f19610bfd565b61083f3061034f6064610839605f610833336001600160a01b03165f9081526001602052604090205490565b906114a2565b90611527565b5060145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b491906119f3565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610913573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093791906119f3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610981573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a591906119f3565b601580546001600160a01b0319166001600160a01b039283161790556014546109d2913091165f19610bfd565b6014546001600160a01b031663f305d7194730610a03816001600160a01b03165f9081526001602052604090205490565b5f80610a165f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aa19190611a0e565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610af6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1a9190611a39565b506015805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610b5d5760405162461bcd60e51b8152600401610558906119aa565b5f5b81518110156105bb57600160045f848481518110610b7f57610b7f6119df565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610b5f565b6005546001600160a01b0316336001600160a01b031614610bd7575f80fd5b6008548111158015610beb57506009548111155b610bf3575f80fd5b6008819055600955565b6001600160a01b038316610c5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610558565b6001600160a01b038216610cc05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610558565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610558565b6001600160a01b038216610de65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610558565b5f8111610e475760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610558565b5f80546001600160a01b03858116911614801590610e7257505f546001600160a01b03848116911614155b15611186576001600160a01b0384165f9081526004602052604090205460ff16158015610eb757506001600160a01b0383165f9081526004602052604090205460ff16155b610ebf575f80fd5b610ee56064610839600a54600d5411610eda57600654610ede565b6008545b85906114a2565b6015549091506001600160a01b038581169116148015610f1357506014546001600160a01b03848116911614155b8015610f3757506001600160a01b0383165f9081526003602052604090205460ff16155b1561101d57601054821115610f8e5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610558565b60115482610fb0856001600160a01b03165f9081526001602052604090205490565b610fba9190611a58565b11156110085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610558565b600d8054905f61101783611a6b565b91905055505b6015546001600160a01b03848116911614801561104357506001600160a01b0384163014155b156110705761106d6064610839600b54600d541161106357600754610ede565b60095485906114a2565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156110a657506015546001600160a01b038581169116145b80156110bb5750601554600160b01b900460ff165b80156110c8575060125481115b80156110d75750600c54600d54115b15611184576017544311156110eb575f6016555b60036016541061113d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610558565b61115a6111558461115084601354611568565b611568565b6112fb565b47801561116a5761116a4761146b565b60168054905f61117983611a6b565b909155505043601755505b505b80156111fe57305f908152600160205260409020546111a5908261157c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461122090836115da565b6001600160a01b0385165f9081526001602052604090205561126361124583836115da565b6001600160a01b0385165f908152600160205260409020549061157c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112ac85856115da565b60405190815260200160405180910390a350505050565b5f81848411156112e65760405162461bcd60e51b81526004016105589190611647565b505f6112f28486611a83565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611341576113416119df565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611398573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bc91906119f3565b816001815181106113cf576113cf6119df565b6001600160a01b0392831660209182029290920101526014546113f59130911684610bfd565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061142d9085905f90869030904290600401611a96565b5f604051808303815f87803b158015611444575f80fd5b505af1158015611456573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105bb573d5f803e3d5ffd5b5f825f036114b157505f61049f565b5f6114bc8385611993565b9050826114c98583611b07565b146115205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610558565b9392505050565b5f61152083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061161b565b5f8183116115765782611520565b50919050565b5f806115888385611a58565b9050838110156115205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610558565b5f61152083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112c3565b5f818361163b5760405162461bcd60e51b81526004016105589190611647565b505f6112f28486611b07565b5f602080835283518060208501525f5b8181101561167357858101830151858201604001528201611657565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116a7575f80fd5b50565b80356116b581611693565b919050565b5f80604083850312156116cb575f80fd5b82356116d681611693565b946020939093013593505050565b5f805f606084860312156116f6575f80fd5b833561170181611693565b9250602084013561171181611693565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611747575f80fd5b823567ffffffffffffffff8082111561175e575f80fd5b818501915085601f830112611771575f80fd5b81358181111561178357611783611722565b8060051b604051601f19603f830116810181811085821117156117a8576117a8611722565b6040529182528482019250838101850191888311156117c5575f80fd5b938501935b828510156117ea576117db856116aa565b845293850193928501926117ca565b98975050505050505050565b5f60208284031215611806575f80fd5b813561152081611693565b5f8060408385031215611822575f80fd5b823561182d81611693565b9150602083013561183d81611693565b809150509250929050565b5f60208284031215611858575f80fd5b5035919050565b600181811c9082168061187357607f821691505b60208210810361157657634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118df57815f19048211156118c5576118c5611891565b808516156118d257918102915b93841c93908002906118aa565b509250929050565b5f826118f55750600161049f565b8161190157505f61049f565b816001811461191757600281146119215761193d565b600191505061049f565b60ff84111561193257611932611891565b50506001821b61049f565b5060208310610133831016604e8410600b8410161715611960575081810a61049f565b61196a83836118a5565b805f190482111561197d5761197d611891565b029392505050565b5f61152060ff8416836118e7565b808202811582820484141761049f5761049f611891565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a03575f80fd5b815161152081611693565b5f805f60608486031215611a20575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a49575f80fd5b81518015158114611520575f80fd5b8082018082111561049f5761049f611891565b5f60018201611a7c57611a7c611891565b5060010190565b8181038181111561049f5761049f611891565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ae65784516001600160a01b031683529383019391830191600101611ac1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b2157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122005f9a6304d32195b11716919ff37cc19eef767075cfe85accb768e267a95cbcf64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c466f75726965722047522d310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447522d3100000000000000000000000000000000000000000000000000000000c001a0ec0e08b0e68421bb1fe16faf0997ad2398a277c05daf13fc00e02a7603015453a0543049ea4bebe38e83d32fb9c62002d508b6b8c945223d7be299f57871061623", + "result": { + "0x5124fcc2b3f99f571ad67d075643c743f38f1c34": { + "balance": "0x12a1dab4b5dcf2597", + "nonce": 40990 + }, + "0xa7613d72e7e0c4f9d58a24e40d47449a86c6ac4c": { + "balance": "0x18f039faa5608000" + }, + "0xc51ea5ee7f65699874e1734c36f8cb08e6f8f92c": { + "balance": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000b": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000d": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000e": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000000000000000000000000000000000000f": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000010": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000011": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000012": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000013": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000015": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000016": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000017": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x2e6dc0bdea0dd827b323c87c0435e8aa8c613f68390c05d47d84be9ab3cf8cac": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x48dc64e2e9c23c7a95936b0900f2baf43586219491da73bc7aaa6e80595b63dd": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xcc71b9679723574916e7a79fd598abed94dc3fbb0da863450c14e707876b5608": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + } +} \ No newline at end of file diff --git a/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create.json b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create.json index 6a0e0b2b3d8..6b8af39eb2f 100644 --- a/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create.json +++ b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create.json @@ -61,7 +61,7 @@ }, "0xf0c5cef39b17c213cfe090a46b8c7760ffb7928a": { "balance": "0x15b6828e22bb12188", - "nonce": 746 + "nonce": 747 } }, "post": { diff --git a/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_failed.json b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_failed.json index 58081bcd2a5..713e02a2559 100644 --- a/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_failed.json +++ b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_failed.json @@ -1,6 +1,5 @@ { "genesis": { - "baseFeePerGas": "51088069741", "difficulty": "14315558652874667", "extraData": "0xd883010a10846765746888676f312e31362e35856c696e7578", "gasLimit": "30058590", @@ -62,6 +61,7 @@ "difficulty": "14322823549655084", "timestamp": "1651623279", "gasLimit": "30029237", + "baseFeePerGas": "45737281170", "miner": "0x8f03f1a3f10c05e7cccf75c1fd10168e06659be7" }, "input": "0x02f8b4018312acfc8459682f00851a46bcf47a8302b1a194ffa397285ce46fb78c588a9e993286aac68c37cd80b844fb90b3200000000000000000000000002a549b4af9ec39b03142da6dc32221fc390b553300000000000000000000000000000000000000000000000000000000000cb3d5c001a03002079d2873f7963c4278200c43aa71efad262b2150bc8524480acfc38b5faaa077d44aa09d56b9cf99443c7f55aaad1bbae9cfb5bbb9de31eaf7a8f9e623e980", @@ -81,7 +81,7 @@ }, "post": { "0x808b4da0be6c9512e948521452227efc619bea52": { - "balance": "0x2cd72a36dd031f089", + "balance": "0x2cd9bcb9a59f4e871", "nonce": 1223933 }, "0x8f03f1a3f10c05e7cccf75c1fd10168e06659be7": { diff --git a/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_suicide.json b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_suicide.json index d24bcbb8b3d..827222ed096 100644 --- a/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_suicide.json +++ b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_suicide.json @@ -69,7 +69,7 @@ "pre": { "0x082d4cdf07f386ffa9258f52a5c49db4ac321ec6": { "balance": "0xc820f93200f4000", - "nonce": 93 + "nonce": 94 }, "0x332b656504f4eabb44c8617a42af37461a34e9dc": { "balance": "0x11faea4f35e5af80000", diff --git a/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_with_value.json b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_with_value.json new file mode 100644 index 00000000000..70895a59ffd --- /dev/null +++ b/eth/tracers/internal/tracetest/testdata/prestate_tracer_with_diff_mode/create_with_value.json @@ -0,0 +1,96 @@ +{ + "genesis": { + "alloc": { + "0x5124fcc2b3f99f571ad67d075643c743f38f1c34": { + "balance": "0x12a1dab4b5dcf2597", + "nonce": "40990" + }, + "0xa7613d72e7e0c4f9d58a24e40d47449a86c6ac4c": { + "balance": "0x18f039faa5608000" + } + }, + "config": { + "chainName": "mainnet", + "chainId": 1, + "consensus": "ethash", + "homesteadBlock": 1150000, + "daoForkBlock": 1920000, + "eip150Block": 2463000, + "eip155Block": 2675000, + "byzantiumBlock": 4370000, + "constantinopleBlock": 7280000, + "petersburgBlock": 7280000, + "istanbulBlock": 9069000, + "muirGlacierBlock": 9200000, + "berlinBlock": 12244000, + "londonBlock": 12965000, + "arrowGlacierBlock": 13773000, + "grayGlacierBlock": 15050000, + "terminalTotalDifficulty": null, + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 1681338455, + "cancunTime": 1710338135, + "ethash": {}, + "noPruneContracts": { + "0x00000000219ab540356cbb839cbe05303d7705fa": true + } + }, + "gasLimit": "30000000", + "difficulty": "0" + }, + "context": { + "number": "19319637", + "difficulty": "0", + "timestamp": "1709045915", + "gasLimit": "30000000", + "baseFeePerGas": "55017891529", + "miner": "0x5124fcC2B3F99F571AD67D075643C743F38f1C34" + }, + "input": "0x02f924500180830cb5cc8511956555b7831e885880880de0b6b3a7640000b923ef6080604052601760065560186007555f6008555f6009556015600a556015600b55601a600c555f600d55620000676127106200006060c86009600a6200004691906200049d565b620000599066017e9d8602b400620004ad565b906200027a565b906200030d565b601055620000856127106200006060c8620000466009600a6200049d565b601155620000a3612710620000606064620000466009600a6200049d565b601255620000c1612710620000606064620000466009600a6200049d565b6013556015805461ffff60a81b191690555f60168190556017556040516200232f38819003908190833981016040819052620000fd916200058d565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e6200014b83826200067d565b50600f6200015a82826200067d565b50600580546001600160a01b031916331790556200017b6009600a6200049d565b6200018e9066017e9d8602b400620004ad565b335f908152600160208190526040822092909255600390620001b75f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620002153390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200024e6009600a6200049d565b620002619066017e9d8602b400620004ad565b60405190815260200160405180910390a350506200079d565b5f825f036200028b57505f62000307565b5f620002988385620004ad565b905082620002a7858362000749565b14620003045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200030483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200035660201b60201c565b5f8183620003795760405162461bcd60e51b8152600401620002fb919062000769565b505f62000387848662000749565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e457815f1904821115620003c857620003c862000390565b80851615620003d657918102915b93841c9390800290620003a9565b509250929050565b5f82620003fc5750600162000307565b816200040a57505f62000307565b81600181146200042357600281146200042e576200044e565b600191505062000307565b60ff84111562000442576200044262000390565b50506001821b62000307565b5060208310610133831016604e8410600b841016171562000473575081810a62000307565b6200047f8383620003a4565b805f190482111562000495576200049562000390565b029392505050565b5f6200030460ff841683620003ec565b808202811582820484141762000307576200030762000390565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620004f7578181015183820152602001620004dd565b50505f910152565b5f82601f8301126200050f575f80fd5b81516001600160401b03808211156200052c576200052c620004c7565b604051601f8301601f19908116603f01168101908282118183101715620005575762000557620004c7565b8160405283815286602085880101111562000570575f80fd5b62000583846020830160208901620004db565b9695505050505050565b5f80604083850312156200059f575f80fd5b82516001600160401b0380821115620005b6575f80fd5b620005c486838701620004ff565b93506020850151915080821115620005da575f80fd5b50620005e985828601620004ff565b9150509250929050565b600181811c908216806200060857607f821691505b6020821081036200062757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200067857805f5260205f20601f840160051c81016020851015620006545750805b601f840160051c820191505b8181101562000675575f815560010162000660565b50505b505050565b81516001600160401b03811115620006995762000699620004c7565b620006b181620006aa8454620005f3565b846200062d565b602080601f831160018114620006e7575f8415620006cf5750858301515b5f19600386901b1c1916600185901b17855562000741565b5f85815260208120601f198616915b828110156200071757888601518255948401946001909101908401620006f6565b50858210156200073557878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f826200076457634e487b7160e01b5f52601260045260245ffd5b500490565b602081525f825180602084015262000789816040850160208701620004db565b601f01601f19169190910160400192915050565b611b8480620007ab5f395ff3fe608060405260043610610134575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb14610335578063bf474bed14610354578063c9567bf914610369578063d34628cc1461037d578063dd62ed3e1461039c578063ec1f3f63146103e0575f80fd5b8063751039fc146102bd5780637d1db4a5146102d15780638da5cb5b146102e65780638f9a55c01461030c57806395d89b4114610321575f80fd5b8063313ce567116100f9578063313ce567146101ee57806331c2d847146102095780633bbac5791461022a57806351bc3c851461026157806370a0823114610275578063715018a6146102a9575f80fd5b806306fdde031461013f578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506101536103ff565b6040516101609190611647565b60405180910390f35b348015610174575f80fd5b506101886101833660046116ba565b61048f565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60135481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6104a5565b3480156101da575f80fd5b506101886101e93660046116e4565b6104c8565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b50610228610223366004611736565b61052f565b005b348015610235575f80fd5b506101886102443660046117f6565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561026c575f80fd5b506102286105bf565b348015610280575f80fd5b506101ad61028f3660046117f6565b6001600160a01b03165f9081526001602052604090205490565b3480156102b4575f80fd5b5061022861060c565b3480156102c8575f80fd5b5061022861067d565b3480156102dc575f80fd5b506101ad60105481565b3480156102f1575f80fd5b505f546040516001600160a01b039091168152602001610160565b348015610317575f80fd5b506101ad60115481565b34801561032c575f80fd5b50610153610737565b348015610340575f80fd5b5061018861034f3660046116ba565b610746565b34801561035f575f80fd5b506101ad60125481565b348015610374575f80fd5b50610228610752565b348015610388575f80fd5b50610228610397366004611736565b610b34565b3480156103a7575f80fd5b506101ad6103b6366004611811565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103eb575f80fd5b506102286103fa366004611848565b610bb8565b6060600e805461040e9061185f565b80601f016020809104026020016040519081016040528092919081815260200182805461043a9061185f565b80156104855780601f1061045c57610100808354040283529160200191610485565b820191905f5260205f20905b81548152906001019060200180831161046857829003601f168201915b5050505050905090565b5f61049b338484610bfd565b5060015b92915050565b5f6104b26009600a611985565b6104c39066017e9d8602b400611993565b905090565b5f6104d4848484610d20565b610525843361052085604051806060016040528060288152602001611b27602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112c3565b610bfd565b5060019392505050565b5f546001600160a01b031633146105615760405162461bcd60e51b8152600401610558906119aa565b60405180910390fd5b5f5b81518110156105bb575f60045f848481518110610582576105826119df565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610563565b5050565b6005546001600160a01b0316336001600160a01b0316146105de575f80fd5b305f9081526001602052604090205480156105fc576105fc816112fb565b4780156105bb576105bb8161146b565b5f546001600160a01b031633146106355760405162461bcd60e51b8152600401610558906119aa565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106a65760405162461bcd60e51b8152600401610558906119aa565b6106b26009600a611985565b6106c39066017e9d8602b400611993565b6010556106d26009600a611985565b6106e39066017e9d8602b400611993565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107136009600a611985565b6107249066017e9d8602b400611993565b60405190815260200160405180910390a1565b6060600f805461040e9061185f565b5f61049b338484610d20565b5f546001600160a01b0316331461077b5760405162461bcd60e51b8152600401610558906119aa565b601554600160a01b900460ff16156107d55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610558565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905561080730335f19610bfd565b61083f3061034f6064610839605f610833336001600160a01b03165f9081526001602052604090205490565b906114a2565b90611527565b5060145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b491906119f3565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610913573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093791906119f3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610981573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a591906119f3565b601580546001600160a01b0319166001600160a01b039283161790556014546109d2913091165f19610bfd565b6014546001600160a01b031663f305d7194730610a03816001600160a01b03165f9081526001602052604090205490565b5f80610a165f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aa19190611a0e565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610af6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1a9190611a39565b506015805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610b5d5760405162461bcd60e51b8152600401610558906119aa565b5f5b81518110156105bb57600160045f848481518110610b7f57610b7f6119df565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610b5f565b6005546001600160a01b0316336001600160a01b031614610bd7575f80fd5b6008548111158015610beb57506009548111155b610bf3575f80fd5b6008819055600955565b6001600160a01b038316610c5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610558565b6001600160a01b038216610cc05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610558565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610558565b6001600160a01b038216610de65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610558565b5f8111610e475760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610558565b5f80546001600160a01b03858116911614801590610e7257505f546001600160a01b03848116911614155b15611186576001600160a01b0384165f9081526004602052604090205460ff16158015610eb757506001600160a01b0383165f9081526004602052604090205460ff16155b610ebf575f80fd5b610ee56064610839600a54600d5411610eda57600654610ede565b6008545b85906114a2565b6015549091506001600160a01b038581169116148015610f1357506014546001600160a01b03848116911614155b8015610f3757506001600160a01b0383165f9081526003602052604090205460ff16155b1561101d57601054821115610f8e5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610558565b60115482610fb0856001600160a01b03165f9081526001602052604090205490565b610fba9190611a58565b11156110085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610558565b600d8054905f61101783611a6b565b91905055505b6015546001600160a01b03848116911614801561104357506001600160a01b0384163014155b156110705761106d6064610839600b54600d541161106357600754610ede565b60095485906114a2565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156110a657506015546001600160a01b038581169116145b80156110bb5750601554600160b01b900460ff165b80156110c8575060125481115b80156110d75750600c54600d54115b15611184576017544311156110eb575f6016555b60036016541061113d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610558565b61115a6111558461115084601354611568565b611568565b6112fb565b47801561116a5761116a4761146b565b60168054905f61117983611a6b565b909155505043601755505b505b80156111fe57305f908152600160205260409020546111a5908261157c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461122090836115da565b6001600160a01b0385165f9081526001602052604090205561126361124583836115da565b6001600160a01b0385165f908152600160205260409020549061157c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112ac85856115da565b60405190815260200160405180910390a350505050565b5f81848411156112e65760405162461bcd60e51b81526004016105589190611647565b505f6112f28486611a83565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611341576113416119df565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611398573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bc91906119f3565b816001815181106113cf576113cf6119df565b6001600160a01b0392831660209182029290920101526014546113f59130911684610bfd565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061142d9085905f90869030904290600401611a96565b5f604051808303815f87803b158015611444575f80fd5b505af1158015611456573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105bb573d5f803e3d5ffd5b5f825f036114b157505f61049f565b5f6114bc8385611993565b9050826114c98583611b07565b146115205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610558565b9392505050565b5f61152083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061161b565b5f8183116115765782611520565b50919050565b5f806115888385611a58565b9050838110156115205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610558565b5f61152083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112c3565b5f818361163b5760405162461bcd60e51b81526004016105589190611647565b505f6112f28486611b07565b5f602080835283518060208501525f5b8181101561167357858101830151858201604001528201611657565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116a7575f80fd5b50565b80356116b581611693565b919050565b5f80604083850312156116cb575f80fd5b82356116d681611693565b946020939093013593505050565b5f805f606084860312156116f6575f80fd5b833561170181611693565b9250602084013561171181611693565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611747575f80fd5b823567ffffffffffffffff8082111561175e575f80fd5b818501915085601f830112611771575f80fd5b81358181111561178357611783611722565b8060051b604051601f19603f830116810181811085821117156117a8576117a8611722565b6040529182528482019250838101850191888311156117c5575f80fd5b938501935b828510156117ea576117db856116aa565b845293850193928501926117ca565b98975050505050505050565b5f60208284031215611806575f80fd5b813561152081611693565b5f8060408385031215611822575f80fd5b823561182d81611693565b9150602083013561183d81611693565b809150509250929050565b5f60208284031215611858575f80fd5b5035919050565b600181811c9082168061187357607f821691505b60208210810361157657634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118df57815f19048211156118c5576118c5611891565b808516156118d257918102915b93841c93908002906118aa565b509250929050565b5f826118f55750600161049f565b8161190157505f61049f565b816001811461191757600281146119215761193d565b600191505061049f565b60ff84111561193257611932611891565b50506001821b61049f565b5060208310610133831016604e8410600b8410161715611960575081810a61049f565b61196a83836118a5565b805f190482111561197d5761197d611891565b029392505050565b5f61152060ff8416836118e7565b808202811582820484141761049f5761049f611891565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a03575f80fd5b815161152081611693565b5f805f60608486031215611a20575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a49575f80fd5b81518015158114611520575f80fd5b8082018082111561049f5761049f611891565b5f60018201611a7c57611a7c611891565b5060010190565b8181038181111561049f5761049f611891565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ae65784516001600160a01b031683529383019391830191600101611ac1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b2157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122005f9a6304d32195b11716919ff37cc19eef767075cfe85accb768e267a95cbcf64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c466f75726965722047522d310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447522d3100000000000000000000000000000000000000000000000000000000c001a0ec0e08b0e68421bb1fe16faf0997ad2398a277c05daf13fc00e02a7603015453a0543049ea4bebe38e83d32fb9c62002d508b6b8c945223d7be299f57871061623", + "tracerConfig": { + "diffMode": true + }, + "result": { + "post": { + "0x5124fcc2b3f99f571ad67d075643c743f38f1c34": { + "balance": "0x12a1daccc28e6a35f" + }, + "0xa7613d72e7e0c4f9d58a24e40d47449a86c6ac4c": { + "balance": "0x98bb1eceeb3f142", + "nonce": 1 + }, + "0xc51ea5ee7f65699874e1734c36f8cb08e6f8f92c": { + "balance": "0xde0b6b3a7640000", + "code": "0x608060405260043610610134575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb14610335578063bf474bed14610354578063c9567bf914610369578063d34628cc1461037d578063dd62ed3e1461039c578063ec1f3f63146103e0575f80fd5b8063751039fc146102bd5780637d1db4a5146102d15780638da5cb5b146102e65780638f9a55c01461030c57806395d89b4114610321575f80fd5b8063313ce567116100f9578063313ce567146101ee57806331c2d847146102095780633bbac5791461022a57806351bc3c851461026157806370a0823114610275578063715018a6146102a9575f80fd5b806306fdde031461013f578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506101536103ff565b6040516101609190611647565b60405180910390f35b348015610174575f80fd5b506101886101833660046116ba565b61048f565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60135481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6104a5565b3480156101da575f80fd5b506101886101e93660046116e4565b6104c8565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b50610228610223366004611736565b61052f565b005b348015610235575f80fd5b506101886102443660046117f6565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561026c575f80fd5b506102286105bf565b348015610280575f80fd5b506101ad61028f3660046117f6565b6001600160a01b03165f9081526001602052604090205490565b3480156102b4575f80fd5b5061022861060c565b3480156102c8575f80fd5b5061022861067d565b3480156102dc575f80fd5b506101ad60105481565b3480156102f1575f80fd5b505f546040516001600160a01b039091168152602001610160565b348015610317575f80fd5b506101ad60115481565b34801561032c575f80fd5b50610153610737565b348015610340575f80fd5b5061018861034f3660046116ba565b610746565b34801561035f575f80fd5b506101ad60125481565b348015610374575f80fd5b50610228610752565b348015610388575f80fd5b50610228610397366004611736565b610b34565b3480156103a7575f80fd5b506101ad6103b6366004611811565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103eb575f80fd5b506102286103fa366004611848565b610bb8565b6060600e805461040e9061185f565b80601f016020809104026020016040519081016040528092919081815260200182805461043a9061185f565b80156104855780601f1061045c57610100808354040283529160200191610485565b820191905f5260205f20905b81548152906001019060200180831161046857829003601f168201915b5050505050905090565b5f61049b338484610bfd565b5060015b92915050565b5f6104b26009600a611985565b6104c39066017e9d8602b400611993565b905090565b5f6104d4848484610d20565b610525843361052085604051806060016040528060288152602001611b27602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112c3565b610bfd565b5060019392505050565b5f546001600160a01b031633146105615760405162461bcd60e51b8152600401610558906119aa565b60405180910390fd5b5f5b81518110156105bb575f60045f848481518110610582576105826119df565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610563565b5050565b6005546001600160a01b0316336001600160a01b0316146105de575f80fd5b305f9081526001602052604090205480156105fc576105fc816112fb565b4780156105bb576105bb8161146b565b5f546001600160a01b031633146106355760405162461bcd60e51b8152600401610558906119aa565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106a65760405162461bcd60e51b8152600401610558906119aa565b6106b26009600a611985565b6106c39066017e9d8602b400611993565b6010556106d26009600a611985565b6106e39066017e9d8602b400611993565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107136009600a611985565b6107249066017e9d8602b400611993565b60405190815260200160405180910390a1565b6060600f805461040e9061185f565b5f61049b338484610d20565b5f546001600160a01b0316331461077b5760405162461bcd60e51b8152600401610558906119aa565b601554600160a01b900460ff16156107d55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610558565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905561080730335f19610bfd565b61083f3061034f6064610839605f610833336001600160a01b03165f9081526001602052604090205490565b906114a2565b90611527565b5060145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b491906119f3565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610913573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093791906119f3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610981573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a591906119f3565b601580546001600160a01b0319166001600160a01b039283161790556014546109d2913091165f19610bfd565b6014546001600160a01b031663f305d7194730610a03816001600160a01b03165f9081526001602052604090205490565b5f80610a165f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aa19190611a0e565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610af6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1a9190611a39565b506015805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610b5d5760405162461bcd60e51b8152600401610558906119aa565b5f5b81518110156105bb57600160045f848481518110610b7f57610b7f6119df565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610b5f565b6005546001600160a01b0316336001600160a01b031614610bd7575f80fd5b6008548111158015610beb57506009548111155b610bf3575f80fd5b6008819055600955565b6001600160a01b038316610c5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610558565b6001600160a01b038216610cc05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610558565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610558565b6001600160a01b038216610de65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610558565b5f8111610e475760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610558565b5f80546001600160a01b03858116911614801590610e7257505f546001600160a01b03848116911614155b15611186576001600160a01b0384165f9081526004602052604090205460ff16158015610eb757506001600160a01b0383165f9081526004602052604090205460ff16155b610ebf575f80fd5b610ee56064610839600a54600d5411610eda57600654610ede565b6008545b85906114a2565b6015549091506001600160a01b038581169116148015610f1357506014546001600160a01b03848116911614155b8015610f3757506001600160a01b0383165f9081526003602052604090205460ff16155b1561101d57601054821115610f8e5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610558565b60115482610fb0856001600160a01b03165f9081526001602052604090205490565b610fba9190611a58565b11156110085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610558565b600d8054905f61101783611a6b565b91905055505b6015546001600160a01b03848116911614801561104357506001600160a01b0384163014155b156110705761106d6064610839600b54600d541161106357600754610ede565b60095485906114a2565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156110a657506015546001600160a01b038581169116145b80156110bb5750601554600160b01b900460ff165b80156110c8575060125481115b80156110d75750600c54600d54115b15611184576017544311156110eb575f6016555b60036016541061113d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610558565b61115a6111558461115084601354611568565b611568565b6112fb565b47801561116a5761116a4761146b565b60168054905f61117983611a6b565b909155505043601755505b505b80156111fe57305f908152600160205260409020546111a5908261157c565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461122090836115da565b6001600160a01b0385165f9081526001602052604090205561126361124583836115da565b6001600160a01b0385165f908152600160205260409020549061157c565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112ac85856115da565b60405190815260200160405180910390a350505050565b5f81848411156112e65760405162461bcd60e51b81526004016105589190611647565b505f6112f28486611a83565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611341576113416119df565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611398573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bc91906119f3565b816001815181106113cf576113cf6119df565b6001600160a01b0392831660209182029290920101526014546113f59130911684610bfd565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061142d9085905f90869030904290600401611a96565b5f604051808303815f87803b158015611444575f80fd5b505af1158015611456573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105bb573d5f803e3d5ffd5b5f825f036114b157505f61049f565b5f6114bc8385611993565b9050826114c98583611b07565b146115205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610558565b9392505050565b5f61152083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061161b565b5f8183116115765782611520565b50919050565b5f806115888385611a58565b9050838110156115205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610558565b5f61152083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112c3565b5f818361163b5760405162461bcd60e51b81526004016105589190611647565b505f6112f28486611b07565b5f602080835283518060208501525f5b8181101561167357858101830151858201604001528201611657565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116a7575f80fd5b50565b80356116b581611693565b919050565b5f80604083850312156116cb575f80fd5b82356116d681611693565b946020939093013593505050565b5f805f606084860312156116f6575f80fd5b833561170181611693565b9250602084013561171181611693565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611747575f80fd5b823567ffffffffffffffff8082111561175e575f80fd5b818501915085601f830112611771575f80fd5b81358181111561178357611783611722565b8060051b604051601f19603f830116810181811085821117156117a8576117a8611722565b6040529182528482019250838101850191888311156117c5575f80fd5b938501935b828510156117ea576117db856116aa565b845293850193928501926117ca565b98975050505050505050565b5f60208284031215611806575f80fd5b813561152081611693565b5f8060408385031215611822575f80fd5b823561182d81611693565b9150602083013561183d81611693565b809150509250929050565b5f60208284031215611858575f80fd5b5035919050565b600181811c9082168061187357607f821691505b60208210810361157657634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118df57815f19048211156118c5576118c5611891565b808516156118d257918102915b93841c93908002906118aa565b509250929050565b5f826118f55750600161049f565b8161190157505f61049f565b816001811461191757600281146119215761193d565b600191505061049f565b60ff84111561193257611932611891565b50506001821b61049f565b5060208310610133831016604e8410600b8410161715611960575081810a61049f565b61196a83836118a5565b805f190482111561197d5761197d611891565b029392505050565b5f61152060ff8416836118e7565b808202811582820484141761049f5761049f611891565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a03575f80fd5b815161152081611693565b5f805f60608486031215611a20575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a49575f80fd5b81518015158114611520575f80fd5b8082018082111561049f5761049f611891565b5f60018201611a7c57611a7c611891565b5060010190565b8181038181111561049f5761049f611891565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ae65784516001600160a01b031683529383019391830191600101611ac1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b2157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122005f9a6304d32195b11716919ff37cc19eef767075cfe85accb768e267a95cbcf64736f6c63430008170033", + "nonce": 1, + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000a7613d72e7e0c4f9d58a24e40d47449a86c6ac4c", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x000000000000000000000000a7613d72e7e0c4f9d58a24e40d47449a86c6ac4c", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000000000000000000000000000000000000000000000000018", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x000000000000000000000000000000000000000000000000000000000000000b": "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0x000000000000000000000000000000000000000000000000000000000000001a", + "0x000000000000000000000000000000000000000000000000000000000000000e": "0x466f75726965722047522d310000000000000000000000000000000000000018", + "0x000000000000000000000000000000000000000000000000000000000000000f": "0x47522d3100000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000010": "0x0000000000000000000000000000000000000000000001c81cee59c6eda40000", + "0x0000000000000000000000000000000000000000000000000000000000000011": "0x0000000000000000000000000000000000000000000001c81cee59c6eda40000", + "0x0000000000000000000000000000000000000000000000000000000000000012": "0x0000000000000000000000000000000000000000000000e40e772ce376d20000", + "0x0000000000000000000000000000000000000000000000000000000000000013": "0x0000000000000000000000000000000000000000000000e40e772ce376d20000", + "0x2e6dc0bdea0dd827b323c87c0435e8aa8c613f68390c05d47d84be9ab3cf8cac": "0x000000000000000000000000000000000000000000005915a68d88da6a080000", + "0x48dc64e2e9c23c7a95936b0900f2baf43586219491da73bc7aaa6e80595b63dd": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xcc71b9679723574916e7a79fd598abed94dc3fbb0da863450c14e707876b5608": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + } + }, + "pre": { + "0x5124fcc2b3f99f571ad67d075643c743f38f1c34": { + "balance": "0x12a1dab4b5dcf2597", + "nonce": 40990 + }, + "0xa7613d72e7e0c4f9d58a24e40d47449a86c6ac4c": { + "balance": "0x18f039faa5608000" + } + } + } +} \ No newline at end of file diff --git a/eth/tracers/internal/tracetest/testgenerator/.gitignore b/eth/tracers/internal/tracetest/testgenerator/.gitignore new file mode 100644 index 00000000000..b38db2f296f --- /dev/null +++ b/eth/tracers/internal/tracetest/testgenerator/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +build/ diff --git a/eth/tracers/internal/tracetest/testgenerator/README.md b/eth/tracers/internal/tracetest/testgenerator/README.md new file mode 100644 index 00000000000..5467b46a0dc --- /dev/null +++ b/eth/tracers/internal/tracetest/testgenerator/README.md @@ -0,0 +1,24 @@ +# Background + +A tool for generating a test case for a given tracer. It communicates to a node via rpc to build: + +1. `genesis` using the parent block of the given `txnHash` and its pre-state +2. `config` for the chain by using the node `admin_nodeInfo` API +3. `input` which is the raw transaction bytes of the given `txnHash` +4. `result` which is result of tracing the given `txnHash` with the given `tracerConfig` + +# Pre-requisites + +1. install node.js & npm: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm + +# Usage + +``` +cd eth/tracers/internal/tracetest/testgenerator +npm install +npm start -- \ +--rpcUrl=http://localhost:8545 \ +--txnHash=0x5c08231a3c34bd1be6ac7df553d451246175f3dad3245ab5e4413cde35ace52e \ +--traceConfig='{"tracer": "prestateTracer", "tracerConfig": { "diffMode": true } }' \ +--outputFilePath=../testdata/prestate_tracer_with_diff_mode/create_with_value.json +``` diff --git a/eth/tracers/internal/tracetest/testgenerator/package-lock.json b/eth/tracers/internal/tracetest/testgenerator/package-lock.json new file mode 100644 index 00000000000..8f6d257284a --- /dev/null +++ b/eth/tracers/internal/tracetest/testgenerator/package-lock.json @@ -0,0 +1,148 @@ +{ + "name": "testgenerator", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "testgenerator", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "ethers": "^6.13.1" + }, + "devDependencies": { + "@types/node": "^20.14.9", + "typescript": "^5.5.2" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@types/node": { + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/ethers": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.1.tgz", + "integrity": "sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", + "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/eth/tracers/internal/tracetest/testgenerator/package.json b/eth/tracers/internal/tracetest/testgenerator/package.json new file mode 100644 index 00000000000..71dd95d5548 --- /dev/null +++ b/eth/tracers/internal/tracetest/testgenerator/package.json @@ -0,0 +1,19 @@ +{ + "name": "testgenerator", + "version": "1.0.0", + "description": "", + "main": "src/index.ts", + "scripts": { + "start": "npm run build && node build/index.js", + "build": "tsc" + }, + "author": "", + "license": "ISC", + "dependencies": { + "ethers": "^6.13.1" + }, + "devDependencies": { + "@types/node": "^20.14.9", + "typescript": "^5.5.2" + } +} diff --git a/eth/tracers/internal/tracetest/testgenerator/src/index.ts b/eth/tracers/internal/tracetest/testgenerator/src/index.ts new file mode 100644 index 00000000000..627b745540b --- /dev/null +++ b/eth/tracers/internal/tracetest/testgenerator/src/index.ts @@ -0,0 +1,173 @@ +import * as fs from "fs" +import {JsonRpcProvider, Transaction, TransactionResponse} from "ethers" + +const args = new Map() + +process.argv.slice(2).forEach(a => { + const nameValue = a.split("=") + args.set(nameValue[0], nameValue[1]) +}) + +if (args.size != 4) { + throw new Error(` +incorrect usage, please provide: + --rpcUrl= + --txnHash= + --traceConfig= + --outputFilePath=` + ) +} + +const rpcUrlInput = args.get("--rpcUrl") +if (!rpcUrlInput) { + throw new Error("incorrect usage, please provide --") +} + +const txnHashInput = args.get("--txnHash") +if (!txnHashInput) { + throw new Error("incorrect usage, please provide --") +} + +const traceConfigInput = args.get("--traceConfig") +if (!traceConfigInput) { + throw new Error("incorrect usage, please provide --") +} + +const outputFilePath = args.get("--outputFilePath") +if (!outputFilePath) { + throw new Error("incorrect usage, please provide --") +} + +generateTest(rpcUrlInput, txnHashInput, JSON.parse(traceConfigInput)) + .then(testCase => { + const json = JSON.stringify(testCase, null, 2) + fs.writeFile(outputFilePath, json, {flag: "w+"}, (err) => { + if (err != null) { + console.error(err) + } + }) + }) + .catch(console.error) + +class TestCase { + constructor( + public genesis: Genesis, + public context: Context, + public input: any, + public tracerConfig: any, + public result: any + ) { + } +} + +async function generateTest(rpcUrl: string, txnHash: string, traceConfig: any): Promise { + const provider = new JsonRpcProvider(rpcUrl) + const txnResponse = await provider.getTransaction(txnHash).catch(err => { + throw err + }) + if (txnResponse == null) { + throw new Error("null txnHash returned from provider") + } + + const context = await generateContext(txnResponse) + const genesis = await generateGenesis(provider, txnHash, parseInt(context.number) - 1) + const result = await generateResult(provider, txnHash, traceConfig) + const input = Transaction.from(txnResponse).serialized + return Promise.resolve(new TestCase(genesis, context, input, traceConfig.tracerConfig, result)) +} + +class Genesis { + constructor( + public alloc: any, + public config: any, + public gasLimit: string, // required attribute for marshalling genesis struct at consumer end + public difficulty: string, // required attribute for marshalling genesis struct at consumer end + ) { + } +} + +async function generateGenesis(provider: JsonRpcProvider, txnHash: string, parentBlockNum: number): Promise { + const alloc: any = await debugTraceTransaction(provider, txnHash, {"tracer": "prestateTracer"}).catch(err => { + throw err + }) + for (const key in alloc) { + if ('nonce' in alloc[key]) { + alloc[key].nonce = alloc[key].nonce.toString() + } + } + + const nodeInfo = await provider.send("admin_nodeInfo", []).catch(err => { + throw err + }) + + const parentBlock = await provider.getBlock(parentBlockNum).catch(err => { + throw err + }) + if (parentBlock == null) { + throw new Error("null parentBlock returned from provider") + } + + const config = nodeInfo.protocols.eth.config + // nullify as it causes issues with marshalling at consumer side + // problem is that JSON.parse and JSON.stringify convert large numbers + // above Number.MAX_VALUE into scientific notation + // and consumers don't expect that when marshalling + config.terminalTotalDifficulty = null + + return Promise.resolve(new Genesis( + alloc, + config, + parentBlock.gasLimit.toString(), + parentBlock.difficulty.toString(), + )) +} + +class Context { + constructor( + public number: string, + public difficulty: string, + public timestamp: string, + public gasLimit: string, + public baseFeePerGas: string | null, + public miner: string, + ) { + } +} + +async function generateContext(txnResponse: TransactionResponse): Promise { + const block = await txnResponse.getBlock().catch(err => { + throw err + }) + if (block == null) { + throw new Error("null block returned from provider") + } + + return Promise.resolve(new Context( + block.number.toString(), + block.difficulty.toString(), + block.timestamp.toString(), + block.gasLimit.toString(), + bigIntToStringOrNull(block.baseFeePerGas), + block.miner, + )) +} + +async function generateResult(provider: JsonRpcProvider, txnHash: string, traceConfig: any): Promise { + let res = await debugTraceTransaction(provider, txnHash, traceConfig).catch(err => { + throw err + }) + delete res["time"] + return Promise.resolve(res) +} + +async function debugTraceTransaction(provider: JsonRpcProvider, txnHash: string, traceConfig: any): Promise { + return provider.send("debug_traceTransaction", [txnHash, traceConfig]) +} + +function bigIntToStringOrNull(baseFeePerGas: bigint | null): string | null { + if (baseFeePerGas == null) { + return null + } + + return baseFeePerGas.toString() +} diff --git a/eth/tracers/internal/tracetest/testgenerator/tsconfig.json b/eth/tracers/internal/tracetest/testgenerator/tsconfig.json new file mode 100644 index 00000000000..d6479f4b7e9 --- /dev/null +++ b/eth/tracers/internal/tracetest/testgenerator/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "commonjs", + "lib": [ + "esnext" + ], + "outDir": "build", + "rootDir": "src", + "strict": true, + "noImplicitAny": true, + "esModuleInterop": true, + "resolveJsonModule": true + } +} diff --git a/eth/tracers/native/call.go b/eth/tracers/native/call.go index 7f3c2321a39..da866627f3e 100644 --- a/eth/tracers/native/call.go +++ b/eth/tracers/native/call.go @@ -103,24 +103,32 @@ type callFrameMarshaling struct { type callTracer struct { noopTracer - callstack []callFrame - config callTracerConfig - gasLimit uint64 - interrupt uint32 // Atomic flag to signal execution interruption - reason error // Textual reason for the interruption - logIndex uint64 - logGaps map[uint64]int + callstack []callFrame + config callTracerConfig + gasLimit uint64 + interrupt uint32 // Atomic flag to signal execution interruption + reason error // Textual reason for the interruption + logIndex uint64 + logGaps map[uint64]int + precompiles []bool // keep track of whether scopes are for pre-compiles or not +} + +func defaultCallTracerConfig() callTracerConfig { + return callTracerConfig{ + IncludePrecompiles: true, + } } type callTracerConfig struct { - OnlyTopCall bool `json:"onlyTopCall"` // If true, call tracer won't collect any subcalls - WithLog bool `json:"withLog"` // If true, call tracer will collect event logs + OnlyTopCall bool `json:"onlyTopCall"` // If true, call tracer won't collect any subcalls + WithLog bool `json:"withLog"` // If true, call tracer will collect event logs + IncludePrecompiles bool `json:"includePrecompiles"` // If true, call tracer will collect calls to precompiles (true by default) } // newCallTracer returns a native go tracer which tracks // call frames of a tx, and implements vm.EVMLogger. func newCallTracer(ctx *tracers.Context, cfg json.RawMessage) (tracers.Tracer, error) { - var config callTracerConfig + config := defaultCallTracerConfig() if cfg != nil { if err := json.Unmarshal(cfg, &config); err != nil { return nil, err @@ -133,6 +141,11 @@ func newCallTracer(ctx *tracers.Context, cfg json.RawMessage) (tracers.Tracer, e // CaptureStart implements the EVMLogger interface to initialize the tracing operation. func (t *callTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { + t.precompiles = append(t.precompiles, precompile) + if precompile && !t.config.IncludePrecompiles { + return + } + t.callstack[0] = callFrame{ Type: vm.CALL, From: from, @@ -150,6 +163,12 @@ func (t *callTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcom // CaptureEnd is called after the call finishes to finalize the tracing. func (t *callTracer) CaptureEnd(output []byte, gasUsed uint64, err error) { + if len(t.callstack) == 0 { + // can happen if top-level is a call to precompile + // and includePrecompiles is false + return + } + t.callstack[0].processOutput(output, err) } @@ -196,9 +215,13 @@ func (t *callTracer) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, sco // CaptureEnter is called when EVM enters a new scope (via call, create or selfdestruct). func (t *callTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libcommon.Address, precompile, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { + t.precompiles = append(t.precompiles, precompile) if t.config.OnlyTopCall { return } + if precompile && !t.config.IncludePrecompiles { + return + } // Skip if tracing was interrupted if atomic.LoadUint32(&t.interrupt) > 0 { return @@ -227,6 +250,16 @@ func (t *callTracer) CaptureExit(output []byte, gasUsed uint64, err error) { if size <= 1 { return } + precompilesLastIdx := len(t.precompiles) - 1 + if precompilesLastIdx < 0 { + return + } + // pop precompile + precompile := t.precompiles[precompilesLastIdx] + t.precompiles = t.precompiles[:precompilesLastIdx] + if precompile && !t.config.IncludePrecompiles { + return + } // pop call call := t.callstack[size-1] t.callstack = t.callstack[:size-1] @@ -244,6 +277,12 @@ func (t *callTracer) CaptureTxStart(gasLimit uint64) { } func (t *callTracer) CaptureTxEnd(restGas uint64) { + if len(t.callstack) == 0 { + // can happen if top-level is a call to precompile + // and includePrecompiles is false + return + } + t.callstack[0].GasUsed = t.gasLimit - restGas if t.config.WithLog { // Logs are not emitted when the call fails @@ -257,6 +296,12 @@ func (t *callTracer) CaptureTxEnd(restGas uint64) { // GetResult returns the json-encoded nested list of call traces, and any // error arising from the encoding or forceful termination (via `Stop`). func (t *callTracer) GetResult() (json.RawMessage, error) { + if len(t.callstack) == 0 && !t.config.IncludePrecompiles { + // can happen if top-level is a call to precompile + // and includePrecompiles is false + // do not return err, just empty result + return nil, nil + } if len(t.callstack) != 1 { return nil, errors.New("incorrect number of top-level calls") } @@ -264,7 +309,7 @@ func (t *callTracer) GetResult() (json.RawMessage, error) { if err != nil { return nil, err } - return json.RawMessage(res), t.reason + return res, t.reason } // Stop terminates execution of the tracer at the first opportune moment. diff --git a/eth/tracers/native/prestate.go b/eth/tracers/native/prestate.go index 7c713d6d5a5..16386a67b3b 100644 --- a/eth/tracers/native/prestate.go +++ b/eth/tracers/native/prestate.go @@ -101,19 +101,28 @@ func (t *prestateTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to li t.lookupAccount(to) t.lookupAccount(env.Context.Coinbase) - // The recipient balance includes the value transferred. - toBal := new(big.Int).Sub(t.pre[to].Balance, value.ToBig()) - t.pre[to].Balance = toBal - - // The sender balance is after reducing: value and gasLimit. - // We need to re-add them to get the pre-tx balance. - fromBal := new(big.Int).Set(t.pre[from].Balance) - gasPrice := env.GasPrice - consumedGas := new(big.Int).Mul(gasPrice.ToBig(), new(big.Int).SetUint64(t.gasLimit)) - fromBal.Add(fromBal, new(big.Int).Add(value.ToBig(), consumedGas)) - t.pre[from].Balance = fromBal - if t.pre[from].Nonce > 0 { - t.pre[from].Nonce-- + // The sender balance is after reducing: gasLimit. + // We need to re-add it to get the pre-tx balance. + consumedGas := new(big.Int).Mul(env.GasPrice.ToBig(), new(big.Int).SetUint64(t.gasLimit)) + fromBal := t.pre[from].Balance + fromBal.Add(fromBal, consumedGas) + + if !create { + valueBig := value.ToBig() + // The recipient balance includes the value transferred. + toBal := t.pre[to].Balance + toBal.Sub(toBal, valueBig) + + // The sender balance is after reducing: value. + // We need to re-add it to get the pre-tx balance. + fromBal.Add(fromBal, valueBig) + + // Nonce has been incremented before reaching here + // when txn is not a "create". + // We need to decrement it to get the pre-tx nonce. + if t.pre[from].Nonce > 0 { + t.pre[from].Nonce-- + } } if create && t.config.DiffMode { diff --git a/params/version.go b/params/version.go index 099dfab5ae0..081e593bed0 100644 --- a/params/version.go +++ b/params/version.go @@ -34,7 +34,7 @@ var ( const ( VersionMajor = 2 // Major version component of the current release VersionMinor = 60 // Minor version component of the current release - VersionMicro = 2 // Patch version component of the current release + VersionMicro = 4 // Patch version component of the current release VersionModifier = "" // Modifier component of the current release VersionKeyCreated = "ErigonVersionCreated" VersionKeyFinished = "ErigonVersionFinished" diff --git a/turbo/execution/eth1/block_building.go b/turbo/execution/eth1/block_building.go index e488207f9d6..28a67c66633 100644 --- a/turbo/execution/eth1/block_building.go +++ b/turbo/execution/eth1/block_building.go @@ -42,7 +42,6 @@ func (e *EthereumExecutionModule) evictOldBuilders() { // Missing: NewPayload, AssembleBlock func (e *EthereumExecutionModule) AssembleBlock(ctx context.Context, req *execution.AssembleBlockRequest) (*execution.AssembleBlockResponse, error) { if !e.semaphore.TryAcquire(1) { - e.logger.Warn("ethereumExecutionModule.AssembleBlock: ExecutionStatus_Busy") return &execution.AssembleBlockResponse{ Id: 0, Busy: true, @@ -112,7 +111,6 @@ func blockValue(br *types.BlockWithReceipts, baseFee *uint256.Int) *uint256.Int func (e *EthereumExecutionModule) GetAssembledBlock(ctx context.Context, req *execution.GetAssembledBlockRequest) (*execution.GetAssembledBlockResponse, error) { if !e.semaphore.TryAcquire(1) { - e.logger.Warn("ethereumExecutionModule.GetAssembledBlock: ExecutionStatus_Busy") return &execution.GetAssembledBlockResponse{ Busy: true, }, nil diff --git a/turbo/execution/eth1/ethereum_execution.go b/turbo/execution/eth1/ethereum_execution.go index 5122edb36b7..257de763fde 100644 --- a/turbo/execution/eth1/ethereum_execution.go +++ b/turbo/execution/eth1/ethereum_execution.go @@ -212,7 +212,6 @@ func (e *EthereumExecutionModule) ValidateChain(ctx context.Context, req *execut } } if isInvalidChain { - e.logger.Warn("ethereumExecutionModule.ValidateChain: chain is invalid", "hash", libcommon.Hash(blockHash)) validationStatus = execution.ExecutionStatus_BadBlock } validationReceipt := &execution.ValidationReceipt{ diff --git a/turbo/jsonrpc/call_traces_test.go b/turbo/jsonrpc/call_traces_test.go index 4fefb1897ca..ebcbfc34f8e 100644 --- a/turbo/jsonrpc/call_traces_test.go +++ b/turbo/jsonrpc/call_traces_test.go @@ -2,17 +2,17 @@ package jsonrpc import ( "context" - "github.com/ledgerwatch/erigon-lib/common/hexutil" "sync" "testing" "github.com/holiman/uint256" jsoniter "github.com/json-iterator/go" - "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/valyala/fastjson" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" @@ -67,7 +67,7 @@ func TestCallTraceOneByOne(t *testing.T) { ToBlock: (*hexutil.Uint64)(&toBlock), ToAddress: []*common.Address{&toAddress1}, } - if err = api.Filter(context.Background(), traceReq1, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq1, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } assert.Equal(t, []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, blockNumbersFromTraces(t, stream.Buffer())) @@ -110,7 +110,7 @@ func TestCallTraceUnwind(t *testing.T) { ToBlock: (*hexutil.Uint64)(&toBlock), ToAddress: []*common.Address{&toAddress1}, } - if err = api.Filter(context.Background(), traceReq1, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq1, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } assert.Equal(t, []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, blockNumbersFromTraces(t, stream.Buffer())) @@ -125,7 +125,7 @@ func TestCallTraceUnwind(t *testing.T) { ToBlock: (*hexutil.Uint64)(&toBlock), ToAddress: []*common.Address{&toAddress1}, } - if err = api.Filter(context.Background(), traceReq2, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq2, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } assert.Equal(t, []int{1, 2, 3, 4, 5, 11, 12}, blockNumbersFromTraces(t, stream.Buffer())) @@ -141,7 +141,7 @@ func TestCallTraceUnwind(t *testing.T) { ToBlock: (*hexutil.Uint64)(&toBlock), ToAddress: []*common.Address{&toAddress1}, } - if err = api.Filter(context.Background(), traceReq3, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq3, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } assert.Equal(t, []int{12, 13, 14, 15, 16, 17, 18, 19, 20}, blockNumbersFromTraces(t, stream.Buffer())) @@ -171,7 +171,7 @@ func TestFilterNoAddresses(t *testing.T) { FromBlock: (*hexutil.Uint64)(&fromBlock), ToBlock: (*hexutil.Uint64)(&toBlock), } - if err = api.Filter(context.Background(), traceReq1, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq1, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } assert.Equal(t, []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, blockNumbersFromTraces(t, stream.Buffer())) @@ -220,7 +220,7 @@ func TestFilterAddressIntersection(t *testing.T) { ToAddress: []*common.Address{&m.Address, &toAddress2}, Mode: TraceFilterModeIntersection, } - if err = api.Filter(context.Background(), traceReq1, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq1, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } assert.Equal(t, []int{6, 7, 8, 9, 10}, blockNumbersFromTraces(t, stream.Buffer())) @@ -236,7 +236,7 @@ func TestFilterAddressIntersection(t *testing.T) { ToAddress: []*common.Address{&toAddress1, &m.Address}, Mode: TraceFilterModeIntersection, } - if err = api.Filter(context.Background(), traceReq1, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq1, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } assert.Equal(t, []int{1, 2, 3, 4, 5}, blockNumbersFromTraces(t, stream.Buffer())) @@ -252,7 +252,7 @@ func TestFilterAddressIntersection(t *testing.T) { FromAddress: []*common.Address{&toAddress2, &toAddress1, &other}, Mode: TraceFilterModeIntersection, } - if err = api.Filter(context.Background(), traceReq1, new(bool), stream); err != nil { + if err = api.Filter(context.Background(), traceReq1, new(bool), nil, stream); err != nil { t.Fatalf("trace_filter failed: %v", err) } require.Empty(t, blockNumbersFromTraces(t, stream.Buffer())) diff --git a/turbo/jsonrpc/gen_traces_test.go b/turbo/jsonrpc/gen_traces_test.go index 1a7807de695..c87c0457b83 100644 --- a/turbo/jsonrpc/gen_traces_test.go +++ b/turbo/jsonrpc/gen_traces_test.go @@ -120,7 +120,7 @@ func TestGeneratedTraceApi(t *testing.T) { stateCache := kvcache.New(kvcache.DefaultCoherentConfig) baseApi := NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs, nil, nil) api := NewTraceAPI(baseApi, m.DB, &httpcfg.HttpCfg{}) - traces, err := api.Block(context.Background(), rpc.BlockNumber(1), new(bool)) + traces, err := api.Block(context.Background(), rpc.BlockNumber(1), new(bool), nil) if err != nil { t.Errorf("trace_block %d: %v", 0, err) } @@ -275,7 +275,7 @@ func TestGeneratedTraceApi(t *testing.T) { func TestGeneratedTraceApiCollision(t *testing.T) { m := rpcdaemontest.CreateTestSentryForTracesCollision(t) api := NewTraceAPI(newBaseApiForTest(m), m.DB, &httpcfg.HttpCfg{}) - traces, err := api.Transaction(context.Background(), common.HexToHash("0xb2b9fa4c999c1c8370ce1fbd1c4315a9ce7f8421fe2ebed8a9051ff2e4e7e3da"), new(bool)) + traces, err := api.Transaction(context.Background(), common.HexToHash("0xb2b9fa4c999c1c8370ce1fbd1c4315a9ce7f8421fe2ebed8a9051ff2e4e7e3da"), new(bool), nil) if err != nil { t.Errorf("trace_block %d: %v", 0, err) } diff --git a/turbo/jsonrpc/testdata/oetracer/tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json b/turbo/jsonrpc/testdata/oetracer/tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json new file mode 100644 index 00000000000..3a8762a603a --- /dev/null +++ b/turbo/jsonrpc/testdata/oetracer/tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json @@ -0,0 +1,854 @@ +{ + "genesis": { + "alloc": { + "0x0000000000000000000000000000000000000001": { + "balance": "0x2e0636ccb6044b740" + }, + "0x19c0976f590d67707e62397c87829d896dc0f1f1": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063626cb3c511610071578063626cb3c51461020b57806365fae35e146102555780639c52a7f114610299578063bf353dbb146102dd578063d4e8be8314610335578063d9638d3614610383576100b4565b80631a0b287e146100b957806329ae8114146100fb57806336569e77146101335780633b6631951461017d57806344e2a5a8146101ab5780635001f3b5146101ed575b600080fd5b6100f9600480360360608110156100cf57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506103cc565b005b6101316004803603604081101561011157600080fd5b8101908080359060200190929190803590602001909291905050506105f9565b005b61013b610786565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a96004803603602081101561019357600080fd5b81019080803590602001909291905050506107ac565b005b6101d7600480360360208110156101c157600080fd5b8101908080359060200190929190505050610946565b6040518082815260200191505060405180910390f35b6101f5610c35565b6040518082815260200191505060405180910390f35b610213610c3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102976004803603602081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c61565b005b6102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8f565b005b61031f600480360360208110156102f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebd565b6040518082815260200191505060405180910390f35b6103816004803603604081101561034b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed5565b005b6103af6004803603602081101561039957600080fd5b810190808035906020019092919050505061109c565b604051808381526020018281526020019250505060405180910390f35b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600084815260200190815260200160002060010154421461050b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4a75672f72686f2d6e6f742d757064617465640000000000000000000000000081525060200191505060405180910390fd5b7f6475747900000000000000000000000000000000000000000000000000000000821415610553578060016000858152602001908152602001600020600001819055506105c1565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f62617365000000000000000000000000000000000000000000000000000000008214156106e1578060048190555061074f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610860576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b600060016000838152602001908152602001600020905060008160000154146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4a75672f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce80000008160000181905550428160010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b600060016000838152602001908152602001600020600101544210156109d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4a75672f696e76616c69642d6e6f77000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b158015610a4a57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b505050506040513d6040811015610a7457600080fd5b810190808051906020019092919080519060200190929190505050915050610aeb610ae5610aba60045460016000888152602001908152602001600020600001546110c0565b600160008781526020019081526020016000206001015442036b033b2e3c9fd0803ce80000006110da565b826111a0565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b65337df84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b5986866111e5565b6040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bc957600080fd5b505af1158015610bdd573d6000803e3d6000fd5b50505050426001600085815260200190815260200160002060010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450919050565b60045481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f766f770000000000000000000000000000000000000000000000000000000000821415610ff75780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611065565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016020528060005260406000206000915090508060000154908060010154905082565b60008183019050828110156110d457600080fd5b92915050565b600083600081146111805760028406600081146110f9578592506110fd565b8392505b50600283046002850494505b841561117a57858602868782041461112057600080fd5b8181018181101561113057600080fd5b8581049750600287061561116d57878502858982041415891515161561115557600080fd5b8381018181101561116557600080fd5b878104965050505b5050600285049450611109565b50611198565b83600081146111925760009250611196565b8392505b505b509392505050565b6000818302905060008214806111be5750828282816111bb57fe5b04145b6111c757600080fd5b6b033b2e3c9fd0803ce800000081816111dc57fe5b04905092915050565b60008183039050600083121580156111fe575060008212155b61120757600080fd5b9291505056fea265627a7a723158201f0f7975dfa300ecdb0df09b00b4c72acd04d6776756f811d747fa04dd51ca1b64736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947015": "0x0000000000000000000000000000000000000000033b2e3ca65dca26e20d5eda", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947016": "0x0000000000000000000000000000000000000000000000000000000063d2ea77" + } + }, + "0x2f0b23f53734252bda2277357e97e1517d6b042a": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063957aa58c11610071578063957aa58c146101de5780639c52a7f1146101fc578063b3bcfa8214610240578063bf353dbb1461025e578063c5ce281e146102b6578063ef693bed146102d4576100a9565b806336569e77146100ae5780633b4da69f146100f857806365fae35e14610146578063692450091461018a5780637bd2bea714610194575b600080fd5b6100b6610322565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101446004803603604081101561010e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610348565b005b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106c3565b005b6101926107f1565b005b61019c6108e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e6610908565b6040518082815260200191505060405180910390f35b61023e6004803603602081101561021257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090e565b005b610248610a3c565b6040518082815260200191505060405180910390f35b6102a06004803603602081101561027457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a42565b6040518082815260200191505060405180910390f35b6102be610a5a565b6040518082815260200191505060405180910390f35b610320600480360360408110156102ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001600554146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b6000811215610437576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025484846040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156104ea57600080fd5b505af11580156104fe573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d602081101561060957600080fd5b810190808051906020019092919050505061068c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610777576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006005819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60045481565b60006020528060005260406000206000915090505481565b60025481565b7f8000000000000000000000000000000000000000000000000000000000000000811115610af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025433846000036040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bac57600080fd5b505af1158015610bc0573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050506040513d6020811015610c9757600080fd5b8101908080519060200190929190505050610d1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505056fea265627a7a72315820bfdfa122fe3ad43a5d779b939c506cae7507e0f5e807767f61193161f1c1e28664736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80637cdd3fde116100f9578063bb35783b11610097578063dc4d20fa11610071578063dc4d20fa1461096c578063f059212a146109b0578063f24e23eb14610a08578063f37ac61c14610a76576101c4565b8063bb35783b14610848578063bf353dbb146108b6578063d9638d361461090e576101c4565b80639c52a7f1116100d35780639c52a7f11461074a578063a3b22fc41461078e578063b65337df146107d2578063babe8a3f1461082a576101c4565b80637cdd3fde14610652578063870c616d146106aa578063957aa58c1461072c576101c4565b80634538c4eb11610166578063692450091161014057806369245009146104ac5780636c25b346146104b6578063760887031461050e5780637bab3f40146105b0576101c4565b80634538c4eb146103785780636111be2e146103f057806365fae35e14610468576101c4565b80632424be5c116101a25780632424be5c1461028b57806329ae8114146102f45780632d61a3551461032c5780633b6631951461034a576101c4565b80630dca59c1146101c95780631a0b287e146101e7578063214414d514610229575b600080fd5b6101d1610aa4565b6040518082815260200191505060405180910390f35b610227600480360360608110156101fd57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610aaa565b005b6102756004803603604081101561023f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d58565b6040518082815260200191505060405180910390f35b6102d7600480360360408110156102a157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7d565b604051808381526020018281526020019250505060405180910390f35b61032a6004803603604081101561030a57600080fd5b810190808035906020019092919080359060200190929190505050610dae565b005b610334610fb5565b6040518082815260200191505060405180910390f35b6103766004803603602081101561036057600080fd5b8101908080359060200190929190505050610fbb565b005b6103da6004803603604081101561038e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061115a565b6040518082815260200191505060405180910390f35b6104666004803603608081101561040657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061117f565b005b6104aa6004803603602081101561047e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611392565b005b6104b461153a565b005b6104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162d565b6040518082815260200191505060405180910390f35b6105ae600480360360c081101561052457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611645565b005b610650600480360360c08110156105c657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e31565b005b6106a86004803603606081101561066857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612130565b005b61072a600480360360a08110156106c057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506122cc565b005b610734612700565b6040518082815260200191505060405180910390f35b61078c6004803603602081101561076057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612706565b005b6107d0600480360360208110156107a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ae565b005b610828600480360360608110156107e857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612967565b005b610832612bac565b6040518082815260200191505060405180910390f35b6108b46004803603606081101561085e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bb2565b005b6108f8600480360360208110156108cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d80565b6040518082815260200191505060405180910390f35b61093a6004803603602081101561092457600080fd5b8101908080359060200190929190505050612d98565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6109ae6004803603602081101561098257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dce565b005b6109f2600480360360208110156109c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e88565b6040518082815260200191505060405180910390f35b610a7460048036036060811015610a1e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ea0565b005b610aa260048036036020811015610a8c57600080fd5b81019080803590602001909291905050506130ca565b005b60075481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f73706f7400000000000000000000000000000000000000000000000000000000821415610c1e57806002600085815260200190815260200160002060020181905550610d1e565b7f6c696e6500000000000000000000000000000000000000000000000000000000821415610c6657806002600085815260200190815260200160002060030181905550610d1d565b7f6475737400000000000000000000000000000000000000000000000000000000821415610cae57806002600085815260200190815260200160002060040181905550610d1c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5b5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f4c696e6500000000000000000000000000000000000000000000000000000000821415610f0e5780600981905550610f7c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050565b60085481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461106f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006002600083815260200190815260200160002060010154146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce800000060026000838152602001908152602001600020600101819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b6001602052816000526040600020602052806000526040600020600091509150505481565b6111898333613244565b6111fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6112556004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b6004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113036004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b6004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a54146114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6000600a819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450565b60056020528060005260406000206000915090505481565b6001600a54146116bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6116c5613437565b6003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905061173e613451565b600260008981526020019081526020016000206040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905060008160200151141561180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f696c6b2d6e6f742d696e69740000000000000000000000000000000081525060200191505060405180910390fd5b611819826000015185613338565b826000018181525050611830826020015184613338565b826020018181525050611847816000015184613338565b8160000181815250506000611860826020015185613377565b90506000611876836020015185602001516133b2565b905061188460075483613338565b6007819055506118c060008613156118bb85606001516118ac876000015188602001516133b2565b111560095460075411156133de565b6133eb565b611932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f6365696c696e672d657863656564656400000000000000000000000081525060200191505060405180910390fd5b611961611947600087131560008912156133de565b611959866000015186604001516133b2565b8311156133eb565b6119d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d73616665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6119f76119e8600087131560008912156133de565b6119f28b33613244565b6133eb565b611a69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7500000000000000000000000000000081525060200191505060405180910390fd5b611a806000871315611a7b8a33613244565b6133eb565b611af2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7600000000000000000000000000000081525060200191505060405180910390fd5b611b096000861215611b048933613244565b6133eb565b611b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7700000000000000000000000000000081525060200191505060405180910390fd5b611b93600085602001511484608001518310156133eb565b611c05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f5661742f6475737400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611c5f600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054876133f8565b600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfc600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613338565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600360008c815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015590505082600260008c81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008981526020019081526020016000209050611f5e826000015485613338565b8260000181905550611f74826001015484613338565b8260010181905550611f8a816000015484613338565b81600001819055506000611fa2826001015485613377565b9050611ffe600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866133f8565b600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061209b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826133f8565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ea600854826133f8565b6008819055505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146121e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b61223e6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006003600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006003600088815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002600089815260200190815260200160002090506123998360000154866133f8565b83600001819055506123af8360010154856133f8565b83600101819055506123c5826000015486613338565b82600001819055506123db826001015485613338565b826001018190555060006123f7846001015483600101546133b2565b9050600061240d846001015484600101546133b2565b905061242b61241c8a33613244565b6124268a33613244565b6133de565b61249d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6124af856000015484600201546133b2565b821115612524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d7372630000000000000000000000000000000081525060200191505060405180910390fd5b612536846000015484600201546133b2565b8111156125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d6473740000000000000000000000000000000081525060200191505060405180910390fd5b6125c3836004015483101560008760010154146133eb565b612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d737263000000000000000000000000000000000000000081525060200191505060405180910390fd5b61264d836004015482101560008660010154146133eb565b6126bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d647374000000000000000000000000000000000000000081525060200191505060405180910390fd5b50505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050505050565b600a5481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146127ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008581526020019081526020016000209050612ab8816001015483613338565b81600101819055506000612ad0826000015484613377565b9050612b1b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6a60075482613338565b60078190555050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60095481565b612bbc8333613244565b612c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b612c77600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d03600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006020528060005260406000206000915090505481565b60026020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60066020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b612f9d600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613029600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130786008548261331e565b60088190555061308a6007548261331e565b6007819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6000339050613118600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a4600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131f360085483613304565b60088190555061320560075483613304565b600781905550505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60006132fc8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161460018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146133eb565b905092915050565b600082828403915081111561331857600080fd5b92915050565b600082828401915081101561333257600080fd5b92915050565b6000818301905060008212158061334f5750828111155b61335857600080fd5b6000821315806133685750828110155b61337157600080fd5b92915050565b60008183029050600083121561338c57600080fd5b60008214806133a35750828282816133a057fe5b05145b6133ac57600080fd5b92915050565b6000808214806133cf57508282838502925082816133cc57fe5b04145b6133d857600080fd5b92915050565b6000818316905092915050565b6000818317905092915050565b6000818303905060008213158061340f5750828111155b61341857600080fd5b6000821215806134285750828110155b61343157600080fd5b92915050565b604051806040016040528060008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fea265627a7a723158208a74d6db3d5b0eba259e13b86f201f0fda2be3ffedbc0b4f90a67d87593f4de764736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000003d3d67f3d7d8a25bc1c037c1740d24aa03e289b6252300", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x0000000000000000004b9f290913b5bf9a382b54d06234482cf1f7e0cfda70ab", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x099e89cca7ffe1d2fcd345b67a28e02e04474aa4d90f285fcc24596ad4e02166": "0x000000000000000000071cbf8d399b90123a8d1e02f6f6534683a51cf0ea7930", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece131": "0x00000000000000000000000000000000000000000000000100bd33fb98ba0000", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece132": "0x0000000000000000000000000000000000000000000002ee2ccae7afb419fb3c", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bb": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e284356", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bc": "0x00000000000000000000000000000000000000000380ccf64585d61dfc80728d", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bd": "0x000000000000000000000000000000000000000dee286c5d5714c921f9f6469e", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603be": "0x00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de52", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bf": "0x00000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000", + "0x6e75488ddfb650532684741eb749ac29db15c8cd59d7771c466155b09612ad73": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x76d2f8c9c940909546724749d054410d1b135d6ef5a8bfd0282076cddf92341a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x7adce341587c7ad28f80a9ef54da0d2f0bfd917b11856be2d246a8c66685b1a0": "0x00000000000000000035b22aa5a2c02ba12ba32fd0477f78170a5fa138000000", + "0x7dd215c1c7bcd252f448890ba9ae168596a6af47f2681a1a28e1bf27b5852a96": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8", + "0x8ac5aa31fc59e05e568a0740a98215030c52ef77851d6455526a8fb927e5faef": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9b06c498c1411f7819ef58913eda44a81e9bfe5678cc341ce6899b997142b937": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9cba659f061d332adc7f618d3ee453592937192458a7ec7299d1231dedc537b8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc450373d07c0691a78dacf78508240f60ba6e2a98fe98dd05ed39cf53e29ac3d": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x519e19eac9ead404343c68224dd2a22c5c25f992": { + "balance": "0x2fa15b25b57acff", + "nonce": "10734" + }, + "0x5ef30b9986345249bc32d8928b7ee64de9435e39": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806380c9419e116100b8578063b3d178f21161007c578063b3d178f2146106f4578063b68f400414610712578063e50322a214610760578063f9f30db614610798578063fc73d771146107f0578063fcafcc681461084857610142565b806380c9419e146105155780638161b1201461055e5780639a816f7d146105cc5780639bb8f83814610624578063b2b192e61461067c57610142565b80632c2cb9fd1161010a5780632c2cb9fd1461031557806336569e771461035757806345e6bdcd146103a15780635aebb460146103e35780636090dec5146104655780637e348b7d146104c757610142565b806305d85eda146101475780630b63fb621461019f57806318af4d60146101f75780631b0dbf72146102595780632726b073146102a7575b600080fd5b6101896004803603602081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610896565b6040518082815260200191505060405180910390f35b6101f5600480360360608110156101b557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ae565b005b6102576004803603608081101561020d57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b19565b005b6102a56004803603604081101561026f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e22565b005b6102d3600480360360208110156102bd57600080fd5b81019080803590602001909291905050506113b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103416004803603602081101561032b57600080fd5b81019080803590602001909291905050506113ea565b6040518082815260200191505060405180910390f35b61035f611402565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e1600480360360608110156103b757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611427565b005b61044f600480360360608110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611784565b6040518082815260200191505060405180910390f35b6104b16004803603604081101561047b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b6565b6040518082815260200191505060405180910390f35b610513600480360360408110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cac565b005b6105416004803603602081101561052b57600080fd5b810190808035906020019092919050505061220e565b604051808381526020018281526020019250505060405180910390f35b61058a6004803603602081101561057457600080fd5b8101908080359060200190929190505050612232565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61060e600480360360208110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612265565b6040518082815260200191505060405180910390f35b61067a6004803603606081101561063a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061227d565b005b6106de6004803603604081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612598565b6040518082815260200191505060405180910390f35b6106fc6125bd565b6040518082815260200191505060405180910390f35b61075e6004803603604081101561072857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125c3565b005b6107966004803603604081101561077657600080fd5b810190808035906020019092919080359060200190929190505050612648565b005b6107ee600480360360608110156107ae57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d22565b005b6108326004803603602081101561080657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613022565b6040518082815260200191505060405180910390f35b6108946004803603604081101561085e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061303a565b005b60086020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109dc57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b81600960006004600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c4757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610cb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e866002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061107957506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6110eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d604081101561120357600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886112b1876139ab565b6112ba876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561136457600080fd5b505af1158015611378573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061155557506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6115c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b60006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376088703600560008881526020019081526020016000205483848589896040518763ffffffff1660e01b8152600401808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b5050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600960205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561185a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7573722d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b61186760015460016139c3565b6001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161189b906139f7565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156118ed573d6000803e3d6000fd5b5060026000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160046000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006001548152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a3e57600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b3e57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060015481526020019081526020016000206000018190555060015460036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b600154600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bce600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001548273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd6be0bc178658a382ff4f91c8c68b542aa6b71685b8fe427966b87745c3ea7a260405160405180910390a460015490505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45092915050565b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d6357506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f0357506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611f75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600088815260200190815260200160002054886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561203057600080fd5b505afa158015612044573d6000803e3d6000fd5b505050506040513d604081101561205a57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d600560008881526020019081526020016000205488600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612108876139ab565b612111876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156121bb57600080fd5b505af11580156121cf573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60036020528060005260406000206000915090508060000154908060010154905082565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123ab57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b61241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e60056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b15801561254757600080fd5b505af115801561255b573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600a602052816000526040600020602052806000526040600020600091509150505481565b60015481565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061277657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6127e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061291657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6005600084815260200190815260200160002054600560008681526020019081526020016000205414612a23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6e6f6e2d6d61746368696e672d6364707300000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015612b1157600080fd5b505afa158015612b25573d6000803e3d6000fd5b505050506040513d6040811015612b3b57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612c1c876139ab565b612c25876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015612ccf57600080fd5b505af1158015612ce3573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612e5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612ec2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b6002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015612fd157600080fd5b505af1158015612fe5573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60066020528060005260406000206000915090505481565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061316857506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6131da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561327d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6473742d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b6004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6473742d616c72656164792d6f776e657200000000000000000000000000000081525060200191505060405180910390fd5b60006003600085815260200190815260200160002060000154146133b85760036000848152602001908152602001600020600101546003600060036000878152602001908152602001600020600001548152602001908152602001600020600101819055505b60006003600085815260200190815260200160002060010154146134225760036000848152602001908152602001600020600001546003600060036000878152602001908152602001600020600101548152602001908152602001600020600001819055506134b0565b6003600084815260200190815260200160002060000154600760006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156135b8576003600084815260200190815260200160002060010154600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613635600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139dd565b600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600085815260200190815260200160002060000181905550600060036000858152602001908152602001600020600101819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613815578260036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156138a25782600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613930600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600081905060008112156139be57600080fd5b919050565b60008282840191508110156139d757600080fd5b92915050565b60008282840391508111156139f157600080fd5b92915050565b61012480613a058339019056fe6080604052348015600f57600080fd5b5060405161012438038061012483398181016040526020811015603157600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1663a3b22fc4336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801560c057600080fd5b505af115801560d3573d6000803e3d6000fd5b5050505050603e806100e66000396000f3fe6080604052600080fdfea265627a7a7231582011d8228e4d52a33e72559199f2a9e6502500acb18f172cf552c647d56fee044f64736f6c634300050c0032a265627a7a723158206b3b639e0afdc17dc08b18e9de88cc23f7660f74f3b7b18d0cb4f00d516c544364736f6c634300050c0032", + "nonce": "30122", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x39283d02e250354521f59445ea551727c1b2713f6e01b3b151d3168c74288463": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x6b3785a4182d3401a98d077bae4c3646fcde354cc8e75c1f95de1faf7ff875c1": "0x000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "0xe91a1aec2b8c6704e98c22b374058d1324cfbce841779cb2a4d296942f0caf2f": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a" + } + }, + "0x6b175474e89094c44da98b954eedeac495271d0f": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637ecebe00116100b8578063a9059cbb1161007c578063a9059cbb146106b4578063b753a98c1461071a578063bb35783b14610768578063bf353dbb146107d6578063dd62ed3e1461082e578063f2d5d56b146108a657610142565b80637ecebe00146104a15780638fcbaf0c146104f957806395d89b411461059f5780639c52a7f1146106225780639dc29fac1461066657610142565b8063313ce5671161010a578063313ce567146102f25780633644e5151461031657806340c10f191461033457806354fd4d501461038257806365fae35e1461040557806370a082311461044957610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e57806330adf81f146102d4575b600080fd5b61014f6108f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061092d565b604051808215151515815260200191505060405180910390f35b610238610a1f565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a25565b604051808215151515815260200191505060405180910390f35b6102dc610f3a565b6040518082815260200191505060405180910390f35b6102fa610f61565b604051808260ff1660ff16815260200191505060405180910390f35b61031e610f66565b6040518082815260200191505060405180910390f35b6103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6c565b005b61038a611128565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ca5780820151818401526020810190506103af565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104476004803603602081101561041b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b005b61048b6004803603602081101561045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061128f565b6040518082815260200191505060405180910390f35b6104e3600480360360208110156104b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b6040518082815260200191505060405180910390f35b61059d600480360361010081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506112bf565b005b6105a76117fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e75780820151818401526020810190506105cc565b50505050905090810190601f1680156106145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106646004803603602081101561063857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611833565b005b6106b26004803603604081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611961565b005b610700600480360360408110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611df4565b604051808215151515815260200191505060405180910390f35b6107666004803603604081101561073057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e09565b005b6107d46004803603606081101561077e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e19565b005b610818600480360360208110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2a565b6040518082815260200191505060405180910390f35b6108906004803603604081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e42565b6040518082815260200191505060405180910390f35b6108f2600480360360408110156108bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e67565b005b6040518060400160405280600e81526020017f44616920537461626c65636f696e00000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60015481565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610adc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610bb457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610db25781600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b610d31600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dfb600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e87600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e91565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b81565b601281565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611020576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b611069600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e91565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110b860015482611e91565b6001819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b60006005547fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b8a8a8a8a8a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018215151515815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4461692f696e76616c69642d616464726573732d30000000000000000000000081525060200191505060405180910390fd5b60018185858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114e9573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f696e76616c69642d7065726d6974000000000000000000000000000081525060200191505060405180910390fd5b60008614806115a25750854211155b611614576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f7065726d69742d65787069726564000000000000000000000000000081525060200191505060405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505587146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4461692f696e76616c69642d6e6f6e636500000000000000000000000000000081525060200191505060405180910390fd5b6000856116e4576000611706565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b905080600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050505050505050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611aee57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611cec5780600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b611c6b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611d35600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8460015482611e77565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611e01338484610a25565b905092915050565b611e14338383610a25565b505050565b611e24838383610a25565b50505050565b60006020528060005260406000206000915090505481565b6003602052816000526040600020602052806000526040600020600091509150505481565b611e72823383610a25565b505050565b6000828284039150811115611e8b57600080fd5b92915050565b6000828284019150811015611ea557600080fd5b9291505056fea265627a7a72315820c0ae2c29860c0a59d5586a579abbcddfe4bcef0524a87301425cbc58c3e94e3164736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000109e3b852672498b65cb8fa1", + "0x9fa7d1a90466effd74b6142b5e6b4b076451f75604d0878dc681cb2014f26d08": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xa9b43d59829a0e23e9335ae57bfab96d4c0f7c384de723cf3c0a9a8dbd6d8b7e": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038": { + "balance": "0x0", + "code": "0x60806040526004361061023b5760003560e01c806396e8d72c1161012e578063c0791710116100ab578063e685cc041161006f578063e685cc0414610c7d578063ead6472914610cc9578063eb0b9a8514610d20578063ee28457614610d63578063fba7591d14610d9f5761023b565b8063c079171014610ab2578063c56167c614610b34578063cbd4be3f14610b77578063db802a3214610bdf578063e205c10814610c475761023b565b8063b50a5869116100f2578063b50a586914610949578063ba727a9514610984578063bcd6deec146109cb578063be5e6c0314610a1a578063beabacc814610a6f5761023b565b806396e8d72c146107f75780639f6f3d5b1461083c5780639f887fde1461088b578063a033df12146108c6578063a6add011146108f45761023b565b80634592aca7116101bc5780636ab6a491116101805780636ab6a4911461068c5780636d68b70b146106d55780637b5a3b43146107245780637bc3bd531461076d5780637df2eb25146107ac5761023b565b80634592aca71461051f578063493c2049146105625780634b666199146105ab5780635f6ef447146105f45780636aa3ee11146106375761023b565b80631d10f231116102035780631d10f231146103aa57806325cf37d0146103ed5780632958f8a5146104345780633e29e5651461048557806342dd11bb146104d65761023b565b8063036a23951461024057806308f00e34146102855780630aee8dec146102ce5780631558b048146103175780631c02d8461461035e575b600080fd5b34801561024c57600080fd5b506102836004803603606081101561026357600080fd5b506001600160a01b03813581169160208101359091169060400135610dee565b005b34801561029157600080fd5b50610283600480360360808110156102a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356111aa565b3480156102da57600080fd5b50610283600480360360808110156102f157600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611319565b34801561032357600080fd5b506102836004803603608081101561033a57600080fd5b506001600160a01b03813581169160208101359160408201351690606001356113f1565b610283600480360360c081101561037457600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a0013561145e565b3480156103b657600080fd5b50610283600480360360608110156103cd57600080fd5b506001600160a01b0381358116916020810135916040909101351661175d565b3480156103f957600080fd5b506102836004803603608081101561041057600080fd5b506001600160a01b03813581169160208101359160408201351690606001356117da565b34801561044057600080fd5b50610283600480360360a081101561045757600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160809091013516611833565b34801561049157600080fd5b50610283600480360360a08110156104a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611906565b3480156104e257600080fd5b50610283600480360360808110156104f957600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611b06565b34801561052b57600080fd5b506102836004803603606081101561054257600080fd5b506001600160a01b03813581169160208101359160409091013516611b69565b34801561056e57600080fd5b506102836004803603608081101561058557600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611bc9565b3480156105b757600080fd5b50610283600480360360808110156105ce57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611dbc565b34801561060057600080fd5b506102836004803603606081101561061757600080fd5b506001600160a01b03813581169160208101359091169060400135612195565b34801561064357600080fd5b5061067a6004803603606081101561065a57600080fd5b506001600160a01b038135811691602081013591604090910135166121f5565b60408051918252519081900360200190f35b34801561069857600080fd5b50610283600480360360808110156106af57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561227c565b3480156106e157600080fd5b50610283600480360360a08110156106f857600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356122fc565b34801561073057600080fd5b506102836004803603608081101561074757600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612677565b34801561077957600080fd5b506102836004803603606081101561079057600080fd5b506001600160a01b038135169060208101359060400135612685565b3480156107b857600080fd5b50610283600480360360808110156107cf57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156126d3565b34801561080357600080fd5b506102836004803603608081101561081a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356128e0565b34801561084857600080fd5b50610283600480360360a081101561085f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612936565b34801561089757600080fd5b50610283600480360360408110156108ae57600080fd5b506001600160a01b0381358116916020013516612bf7565b610283600480360360408110156108dc57600080fd5b506001600160a01b0381358116916020013516612c6b565b34801561090057600080fd5b50610283600480360360c081101561091757600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612e50565b34801561095557600080fd5b506102836004803603604081101561096c57600080fd5b506001600160a01b038135811691602001351661311f565b34801561099057600080fd5b50610283600480360360808110156109a757600080fd5b506001600160a01b0381358116916020810135916040820135169060600135613177565b3480156109d757600080fd5b50610283600480360360a08110156109ee57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356131d0565b348015610a2657600080fd5b50610283600480360360c0811015610a3d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135613463565b348015610a7b57600080fd5b5061028360048036036060811015610a9257600080fd5b506001600160a01b038135811691602081013590911690604001356137f9565b348015610abe57600080fd5b50610b11600480360360e0811015610ad557600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135613859565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610b4057600080fd5b5061028360048036036060811015610b5757600080fd5b506001600160a01b038135811691602081013590911690604001356139dc565b348015610b8357600080fd5b506102836004803603610100811015610b9b57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613be2565b348015610beb57600080fd5b5061067a6004803603610100811015610c0357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613edf565b61028360048036036060811015610c5d57600080fd5b506001600160a01b03813581169160208101359091169060400135613f0a565b61067a600480360360c0811015610c9357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a001356140e0565b348015610cd557600080fd5b50610283600480360360c0811015610cec57600080fd5b506001600160a01b0381358116916020810135821691604082013591606081013591608082013515159160a0013516614107565b348015610d2c57600080fd5b5061028360048036036060811015610d4357600080fd5b506001600160a01b038135811691602081013590911690604001356141db565b61028360048036036080811015610d7957600080fd5b506001600160a01b0381358116916020810135821691604082013591606001351661423b565b348015610dab57600080fd5b50610dd260048036036020811015610dc257600080fd5b50356001600160a01b031661430d565b604080516001600160a01b039092168252519081900360200190f35b6000836001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2957600080fd5b505afa158015610e3d573d6000803e3d6000fd5b505050506040513d6020811015610e5357600080fd5b505160408051632726b07360e01b81526004810185905290519192506000916001600160a01b03871691632726b073916024808301926020929190829003018186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6020811015610ecc57600080fd5b505160408051632c2cb9fd60e01b81526004810186905290519192506000916001600160a01b03881691632c2cb9fd916024808301926020929190829003018186803b158015610f1b57600080fd5b505afa158015610f2f573d6000803e3d6000fd5b505050506040513d6020811015610f4557600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b158015610f9957600080fd5b505afa158015610fad573d6000803e3d6000fd5b505050506040513d6040811015610fc357600080fd5b506020908101516040805163040b0d8960e51b81526004810189905290519193506000926001600160a01b038b1692638161b120926024808201939291829003018186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b505190506001600160a01b0381163014806110db5750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d60208110156110d557600080fd5b50516001145b1561110b576110f687856110f18888898961438a565b6139dc565b61110688876000856000036128e0565b6111a0565b61111c87306110f18830898961438a565b60408051637608870360e01b8152600481018590526001600160a01b0386811660248301523060448301819052606483015260006084830181905285810360a484015292519088169263760887039260c4808201939182900301818387803b15801561118757600080fd5b505af115801561119b573d6000803e3d6000fd5b505050505b5050505050505050565b6111b6848330846113f1565b6040805163ef693bed60e01b81523060048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50505050826001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561125757600080fd5b505af115801561126b573d6000803e3d6000fd5b505050506040513d602081101561128157600080fd5b505160408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611312573d6000803e3d6000fd5b5050505050565b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561136757600080fd5b505afa15801561137b573d6000803e3d6000fd5b505050506040513d602081101561139157600080fd5b50516001600160a01b0316146113e0576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484610dee565b50505050565b604080516313771f0760e31b8152600481018590526001600160a01b03848116602483015260448201849052915191861691639bb8f8389160648082019260009290919082900301818387803b15801561144a57600080fd5b505af11580156111a0573d6000803e3d6000fd5b6000866001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114a457600080fd5b505afa1580156114b8573d6000803e3d6000fd5b505050506040513d60208110156114ce57600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038a16916336569e77916004808301926020929190829003018186803b15801561151657600080fd5b505afa15801561152a573d6000803e3d6000fd5b505050506040513d602081101561154057600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038b1691632c2cb9fd916024808301926020929190829003018186803b15801561158f57600080fd5b505afa1580156115a3573d6000803e3d6000fd5b505050506040513d60208110156115b957600080fd5b505190506115c78784612c6b565b6115e789866115d534614558565b6115e2868d89888c6145a3565b6128e0565b6115fb8986306115f688614720565b6117da565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b15801561164b57600080fd5b505afa15801561165f573d6000803e3d6000fd5b505050506040513d602081101561167557600080fd5b50516116ec57816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156116d357600080fd5b505af11580156116e7573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561173a57600080fd5b505af115801561174e573d6000803e3d6000fd5b50505050505050505050505050565b826001600160a01b031663fcafcc6883836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b50505050505050565b60408051637cf986db60e11b8152600481018590526001600160a01b0384811660248301526044820184905291519186169163f9f30db69160648082019260009290919082900301818387803b15801561144a57600080fd5b806001600160a01b0316856001600160a01b0316638161b120856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561188157600080fd5b505afa158015611895573d6000803e3d6000fd5b505050506040513d60208110156118ab57600080fd5b50516001600160a01b0316146118fa576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b61131285858585611dbc565b611912843084846126d3565b846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561194b57600080fd5b505afa15801561195f573d6000803e3d6000fd5b505050506040513d602081101561197557600080fd5b505160408051632c2cb9fd60e01b81526004810186905290516001600160a01b039283169263760887039290891691632c2cb9fd91602480820192602092909190829003018186803b1580156119ca57600080fd5b505afa1580156119de573d6000803e3d6000fd5b505050506040513d60208110156119f457600080fd5b505160408051632726b07360e01b81526004810188905290516001600160a01b038a1691632726b073916024808301926020929190829003018186803b158015611a3d57600080fd5b505afa158015611a51573d6000803e3d6000fd5b505050506040513d6020811015611a6757600080fd5b50513080611a7d611a788b8a61473d565b614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050505050505050565b611b1b848330611b16878661473d565b6113f1565b6040805163ef693bed60e01b81523360048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561144a57600080fd5b826001600160a01b0316631b0dbf7283836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000846001600160a01b031663c4552791836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611c2157600080fd5b505afa158015611c35573d6000803e3d6000fd5b505050506040513d6020811015611c4b57600080fd5b505190506001600160a01b0381161580611cdb5750816001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca357600080fd5b505afa158015611cb7573d6000803e3d6000fd5b505050506040513d6020811015611ccd57600080fd5b50516001600160a01b031614155b15611db157813b8015611d29576040805162461bcd60e51b8152602060048201526011602482015270111cdd0b5a5ccb584b58dbdb9d1c9858dd607a1b604482015290519081900360640190fd5b856001600160a01b031663f3701da2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b505050506040513d6020811015611dab57600080fd5b50519150505b61131284848361175d565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015611df757600080fd5b505afa158015611e0b573d6000803e3d6000fd5b505050506040513d6020811015611e2157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03881691632726b073916024808301926020929190829003018186803b158015611e7057600080fd5b505afa158015611e84573d6000803e3d6000fd5b505050506040513d6020811015611e9a57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b03891691632c2cb9fd916024808301926020929190829003018186803b158015611ee957600080fd5b505afa158015611efd573d6000803e3d6000fd5b505050506040513d6020811015611f1357600080fd5b50516040805163040b0d8960e51b81526004810188905290519192506000916001600160a01b038a1691638161b120916024808301926020929190829003018186803b158015611f6257600080fd5b505afa158015611f76573d6000803e3d6000fd5b505050506040513d6020811015611f8c57600080fd5b505190506001600160a01b0381163014806120295750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b158015611ff957600080fd5b505afa15801561200d573d6000803e3d6000fd5b505050506040513d602081101561202357600080fd5b50516001145b156120cd576120398784876139dc565b611106888760006115e288896001600160a01b0316636c25b3468a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561209a57600080fd5b505afa1580156120ae573d6000803e3d6000fd5b505050506040513d60208110156120c457600080fd5b505189896147bc565b6120d88730876139dc565b836001600160a01b031663760887038385303060006121068b676765c793fa10079d601b1b8e028c8c6147bc565b6040518763ffffffff1660e01b815260040180878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561118757600080fd5b826001600160a01b031663b68f400483836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051636090dec560e01b8152600481018490526001600160a01b0383811660248301529151600092861691636090dec591604480830192602092919082900301818787803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d602081101561227257600080fd5b5051949350505050565b6000612288848361473d565b90506122a2858461229884614558565b60000360006128e0565b6122ae858430846113f1565b6040805163ef693bed60e01b81523360048201526024810184905290516001600160a01b0386169163ef693bed91604480830192600092919082900301818387803b158015611ae757600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d602081101561236157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b1580156123b057600080fd5b505afa1580156123c4573d6000803e3d6000fd5b505050506040513d60208110156123da57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561242957600080fd5b505afa15801561243d573d6000803e3d6000fd5b505050506040513d602081101561245357600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156124a757600080fd5b505afa1580156124bb573d6000803e3d6000fd5b505050506040513d60408110156124d157600080fd5b506020015190506124e987846110f18782808861438a565b61250389876124f788614558565b600003846000036128e0565b61250f898730886113f1565b6040805163ef693bed60e01b81523060048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b15801561255d57600080fd5b505af1158015612571573d6000803e3d6000fd5b50505050876001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156125b057600080fd5b505af11580156125c4573d6000803e3d6000fd5b505050506040513d60208110156125da57600080fd5b505160408051632e1a7d4d60e01b81526004810188905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b15801561262657600080fd5b505af115801561263a573d6000803e3d6000fd5b505060405133925087156108fc02915087906000818181858888f1935050505015801561266b573d6000803e3d6000fd5b50505050505050505050565b6111aa848361229884614558565b826001600160a01b031663e50322a283836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b801561288057836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561271457600080fd5b505af1158015612728573d6000803e3d6000fd5b505050506040513d602081101561273e57600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b15801561279657600080fd5b505af11580156127aa573d6000803e3d6000fd5b50505050836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b505050506040513d602081101561281357600080fd5b50516040805163095ea7b360e01b81526001600160a01b038781166004830152602482018690529151919092169163095ea7b391604480830192600092919082900301818387803b15801561286757600080fd5b505af115801561287b573d6000803e3d6000fd5b505050505b836001600160a01b0316633b4da69f84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561144a57600080fd5b836001600160a01b03166345e6bdcd8484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561144a57600080fd5b6000856001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561297c57600080fd5b505afa158015612990573d6000803e3d6000fd5b505050506040513d60208110156129a657600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038916916336569e77916004808301926020929190829003018186803b1580156129ee57600080fd5b505afa158015612a02573d6000803e3d6000fd5b505050506040513d6020811015612a1857600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b158015612a6757600080fd5b505afa158015612a7b573d6000803e3d6000fd5b505050506040513d6020811015612a9157600080fd5b50519050612aa9888660006115e2868c89888c6145a3565b612ab88886306115f688614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015612b0857600080fd5b505afa158015612b1c573d6000803e3d6000fd5b505050506040513d6020811015612b3257600080fd5b5051612ba957816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612b9057600080fd5b505af1158015612ba4573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663dc4d20fa826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b505af1158015612c63573d6000803e3d6000fd5b505050505050565b816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612ca657600080fd5b505af1158015612cba573d6000803e3d6000fd5b505050506040513d6020811015612cd057600080fd5b505160408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b158015612d1657600080fd5b505af1158015612d2a573d6000803e3d6000fd5b5050505050816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d6a57600080fd5b505af1158015612d7e573d6000803e3d6000fd5b505050506040513d6020811015612d9457600080fd5b50516040805163095ea7b360e01b81526001600160a01b0385811660048301523460248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015612de757600080fd5b505af1158015612dfb573d6000803e3d6000fd5b505060408051633b4da69f60e01b81526001600160a01b03858116600483015234602483015291519186169350633b4da69f925060448082019260009290919082900301818387803b158015612c4f57600080fd5b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e9657600080fd5b505afa158015612eaa573d6000803e3d6000fd5b505050506040513d6020811015612ec057600080fd5b50519050612ecf8582846139dc565b6000612edb878561473d565b90506130c58886612eeb84614558565b6000036115e28c6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f2a57600080fd5b505afa158015612f3e573d6000803e3d6000fd5b505050506040513d6020811015612f5457600080fd5b81019080805190602001909291905050508d6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9e57600080fd5b505afa158015612fb2573d6000803e3d6000fd5b505050506040513d6020811015612fc857600080fd5b505160408051633612d9a360e11b81526001600160a01b038b8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561301457600080fd5b505afa158015613028573d6000803e3d6000fd5b505050506040513d602081101561303e57600080fd5b8101908080519060200190929190505050888f6001600160a01b0316632c2cb9fd8e6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b505afa1580156130a8573d6000803e3d6000fd5b505050506040513d60208110156130be57600080fd5b50516147bc565b6130d1888630846113f1565b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0389169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663a3b22fc4826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b604080516305b1fdb160e11b8152600481018590526001600160a01b03848116602483015260448201849052915191861691630b63fb629160648082019260009290919082900301818387803b15801561144a57600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561320b57600080fd5b505afa15801561321f573d6000803e3d6000fd5b505050506040513d602081101561323557600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b15801561328457600080fd5b505afa158015613298573d6000803e3d6000fd5b505050506040513d60208110156132ae57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b1580156132fd57600080fd5b505afa158015613311573d6000803e3d6000fd5b505050506040513d602081101561332757600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b15801561337b57600080fd5b505afa15801561338f573d6000803e3d6000fd5b505050506040513d60408110156133a557600080fd5b506020015190506133bd87846110f18782808861438a565b60006133c9898761473d565b90506133e58a886133d984614558565b600003856000036128e0565b6133f18a8830846113f1565b6040805163ef693bed60e01b81523360048201526024810188905290516001600160a01b038b169163ef693bed91604480830192600092919082900301818387803b15801561343f57600080fd5b505af1158015613453573d6000803e3d6000fd5b5050505050505050505050505050565b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134a957600080fd5b505afa1580156134bd573d6000803e3d6000fd5b505050506040513d60208110156134d357600080fd5b505190506134e28582846139dc565b61369187856134f086614558565b6000036115e28b6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561352f57600080fd5b505afa158015613543573d6000803e3d6000fd5b505050506040513d602081101561355957600080fd5b5051604080516336569e7760e01b815290516001600160a01b038f16916336569e77916004808301926020929190829003018186803b15801561359b57600080fd5b505afa1580156135af573d6000803e3d6000fd5b505050506040513d60208110156135c557600080fd5b505160408051633612d9a360e11b81526001600160a01b038a8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561361157600080fd5b505afa158015613625573d6000803e3d6000fd5b505050506040513d602081101561363b57600080fd5b8101908080519060200190929190505050878e6001600160a01b0316632c2cb9fd8d6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b61369d878530866113f1565b6040805163ef693bed60e01b81523060048201526024810185905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b1580156136eb57600080fd5b505af11580156136ff573d6000803e3d6000fd5b50505050856001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050506040513d602081101561376857600080fd5b505160408051632e1a7d4d60e01b81526004810186905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156137b457600080fd5b505af11580156137c8573d6000803e3d6000fd5b505060405133925085156108fc02915085906000818181858888f193505050501580156111a0573d6000803e3d6000fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051638c4c280160e01b8152306004820152905160009182916001600160a01b03891691638c4c2801916024808301926020929190829003018186803b1580156138a457600080fd5b505afa1580156138b8573d6000803e3d6000fd5b505050506040513d60208110156138ce57600080fd5b505191506001600160a01b0382166138ec576138e98761430d565b91505b866001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561392757600080fd5b505af115801561393b573d6000803e3d6000fd5b505050506040513d602081101561395157600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018890529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156139a557600080fd5b505af11580156139b9573d6000803e3d6000fd5b505050506139ce898989898989896000613edf565b905097509795505050505050565b826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613a1757600080fd5b505af1158015613a2b573d6000803e3d6000fd5b505050506040513d6020811015613a4157600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b158015613a9957600080fd5b505af1158015613aad573d6000803e3d6000fd5b50505050826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613aec57600080fd5b505af1158015613b00573d6000803e3d6000fd5b505050506040513d6020811015613b1657600080fd5b50516040805163095ea7b360e01b81526001600160a01b038681166004830152602482018590529151919092169163095ea7b391604480830192600092919082900301818387803b158015613b6a57600080fd5b505af1158015613b7e573d6000803e3d6000fd5b50505050826001600160a01b0316633b4da69f83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000886001600160a01b0316632726b073866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d6020811015613c5257600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038c16916336569e77916004808301926020929190829003018186803b158015613c9a57600080fd5b505afa158015613cae573d6000803e3d6000fd5b505050506040513d6020811015613cc457600080fd5b505160408051632c2cb9fd60e01b81526004810189905290519192506000916001600160a01b038d1691632c2cb9fd916024808301926020929190829003018186803b158015613d1357600080fd5b505afa158015613d27573d6000803e3d6000fd5b505050506040513d6020811015613d3d57600080fd5b50519050613d4d898488876126d3565b613d6c8b88613d5f611a788d8b61473d565b6115e2868f89888d6145a3565b613d7b8b88306115f689614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038a81166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015613dcb57600080fd5b505afa158015613ddf573d6000803e3d6000fd5b505050506040513d6020811015613df557600080fd5b5051613e6c57816001600160a01b031663a3b22fc4896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015613e5357600080fd5b505af1158015613e67573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b158015613eba57600080fd5b505af1158015613ece573d6000803e3d6000fd5b505050505050505050505050505050565b6000613eec8986306121f5565b9050613efe8989898985898989613be2565b98975050505050505050565b613f148230612c6b565b826001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015613f4d57600080fd5b505afa158015613f61573d6000803e3d6000fd5b505050506040513d6020811015613f7757600080fd5b505160408051632c2cb9fd60e01b81526004810184905290516001600160a01b039283169263760887039290871691632c2cb9fd91602480820192602092909190829003018186803b158015613fcc57600080fd5b505afa158015613fe0573d6000803e3d6000fd5b505050506040513d6020811015613ff657600080fd5b505160408051632726b07360e01b81526004810186905290516001600160a01b03881691632726b073916024808301926020929190829003018186803b15801561403f57600080fd5b505afa158015614053573d6000803e3d6000fd5b505050506040513d602081101561406957600080fd5b5051308061407634614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b1580156117bd57600080fd5b60006140ed8784306121f5565b90506140fd87878787858761145e565b9695505050505050565b806001600160a01b0316866001600160a01b0316638161b120866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561415557600080fd5b505afa158015614169573d6000803e3d6000fd5b505050506040513d602081101561417f57600080fd5b50516001600160a01b0316146141ce576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b612c638686868686611906565b826001600160a01b0316637e348b7d83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561428957600080fd5b505afa15801561429d573d6000803e3d6000fd5b505050506040513d60208110156142b357600080fd5b50516001600160a01b031614614302576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484613f0a565b60408051631060930d60e01b815230600482015290516000916001600160a01b03841691631060930d9160248082019260209290919082900301818787803b15801561435857600080fd5b505af115801561436c573d6000803e3d6000fd5b505050506040513d602081101561438257600080fd5b505192915050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b1580156143d157600080fd5b505afa1580156143e5573d6000803e3d6000fd5b505050506040513d60a08110156143fb57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561445257600080fd5b505afa158015614466573d6000803e3d6000fd5b505050506040513d604081101561447c57600080fd5b5060209081015160408051633612d9a360e11b81526001600160a01b038a811660048301529151929450600093918b1692636c25b34692602480840193919291829003018186803b1580156144d057600080fd5b505afa1580156144e4573d6000803e3d6000fd5b505050506040513d60208110156144fa57600080fd5b50519050600061451361450d84866148ec565b83614947565b9050676765c793fa10079d601b1b810494508061453b86676765c793fa10079d601b1b6148ec565b10614546578461454b565b846001015b9998505050505050505050565b80600081121561459e576040805162461bcd60e51b815260206004820152600c60248201526b696e742d6f766572666c6f7760a01b604482015290519081900360640190fd5b919050565b600080856001600160a01b03166344e2a5a8856040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156145ec57600080fd5b505af1158015614600573d6000803e3d6000fd5b505050506040513d602081101561461657600080fd5b505160408051633612d9a360e11b81526001600160a01b0388811660048301529151929350600092918a1691636c25b34691602480820192602092909190829003018186803b15801561466857600080fd5b505afa15801561467c573d6000803e3d6000fd5b505050506040513d602081101561469257600080fd5b505190506146ab84676765c793fa10079d601b1b6148ec565b811015614715576146e1826146d46146ce87676765c793fa10079d601b1b6148ec565b84614947565b816146db57fe5b04614558565b92506146f884676765c793fa10079d601b1b6148ec565b61470284846148ec565b1061470d5782614712565b826001015b92505b505095945050505050565b600061473782676765c793fa10079d601b1b6148ec565b92915050565b60006147b582846001600160a01b031663b3bcfa826040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561477e57600080fd5b505af1158015614792573d6000803e3d6000fd5b505050506040513d60208110156147a857600080fd5b5051601203600a0a6148ec565b9392505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b15801561480357600080fd5b505afa158015614817573d6000803e3d6000fd5b505050506040513d60a081101561482d57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561488457600080fd5b505afa158015614898573d6000803e3d6000fd5b505050506040513d60408110156148ae57600080fd5b506020015190506148c18287816146db57fe5b9250808311156148dc576148d481614558565b6000036148e1565b826000035b979650505050505050565b60008115806149075750508082028282828161490457fe5b04145b614737576040805162461bcd60e51b815260206004820152600c60248201526b6d756c2d6f766572666c6f7760a01b604482015290519081900360640190fd5b80820382811115614737576040805162461bcd60e51b815260206004820152600c60248201526b7375622d6f766572666c6f7760a01b604482015290519081900360640190fdfea265627a7a7231582012dcfe4bf58005e81f7eafd7f0b120bebf5a4e6adcf218708bad72768b5c6e4e64736f6c634300050c0032", + "nonce": "1" + }, + "0x9759a6ac90977b93b58547b4a71c78317f391a28": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063957aa58c11610066578063957aa58c1461017e5780639c52a7f11461019c578063bf353dbb146101e0578063ef693bed14610238578063f4b9fa751461028657610093565b806336569e77146100985780633b4da69f146100e257806365fae35e146101305780636924500914610174575b600080fd5b6100a06102d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61012e600480360360408110156100f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506102f6565b005b6101726004803603602081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f8565b005b61017c610626565b005b610186610717565b6040518082815260200191505060405180910390f35b6101de600480360360208110156101b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061071d565b005b610222600480360360208110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084b565b6040518082815260200191505060405180910390f35b6102846004803603604081101561024e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610863565b005b61028e610add565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b308461034c6b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146105ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006003819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b60035481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b6001600354146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4461694a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b33306109316b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156109cd57600080fd5b505af11580156109e1573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821480610b205750828283850292508281610b1d57fe5b04145b610b2957600080fd5b9291505056fea265627a7a7231582073556d6c1e4fe23e478f0dc378056d7722545a3e43c977fa340ddc81d62345c864736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6": { + "balance": "0x0", + "code": "0x60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461008f5780631cff79cd146100b05780631f6a1eb91461011c57806360c7d295146101c95780637a9e5e4b146101fa5780638da5cb5b1461021b578063948f507614610230578063bf7e214f14610265575b005b34801561009b57600080fd5b5061008d600160a060020a036004351661027a565b60408051602060046024803582810135601f810185900485028601850190965285855261010a958335600160a060020a03169536956044949193909101919081908401838280828437509497506102f89650505050505050565b60408051918252519081900360200190f35b6040805160206004803580820135601f81018490048402850184019095528484526101a694369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103be9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101d557600080fd5b506101de6105ce565b60408051600160a060020a039092168252519081900360200190f35b34801561020657600080fd5b5061008d600160a060020a03600435166105dd565b34801561022757600080fd5b506101de610657565b34801561023c57600080fd5b50610251600160a060020a0360043516610666565b604080519115158252519081900360200190f35b34801561027157600080fd5b506101de61072d565b61029033600035600160e060020a03191661073c565b151561029b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b600061031033600035600160e060020a03191661073c565b151561031b57600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a038516151561038a57600080fd5b60206000855160208701886113885a03f460005193508015600181146103af576103b4565b600080fd5b5050505092915050565b6002546040517f8bf4515c0000000000000000000000000000000000000000000000000000000081526020600482018181528551602484015285516000948594600160a060020a0390911693638bf4515c93899390928392604490910191908501908083838b5b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561048957600080fd5b505af115801561049d573d6000803e3d6000fd5b505050506040513d60208110156104b357600080fd5b50519150600160a060020a03821615156105bb576002546040517f7ed0c3b2000000000000000000000000000000000000000000000000000000008152602060048201818152875160248401528751600160a060020a0390941693637ed0c3b293899383926044909201919085019080838360005b83811015610540578181015183820152602001610528565b50505050905090810190601f16801561056d5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505191505b6105c582846102f8565b90509250929050565b600254600160a060020a031681565b6105f333600035600160e060020a03191661073c565b15156105fe57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b600061067e33600035600160e060020a03191661073c565b151561068957600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a03841615156106f857600080fd5b60028054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff19909116179055600192505050919050565b600054600160a060020a031681565b600030600160a060020a031683600160a060020a031614156107605750600161084a565b600154600160a060020a038481169116141561077e5750600161084a565b600054600160a060020a031615156107985750600061084a565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301523081166024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505190505b929150505600a165627a7a72305820e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e10029", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be" + } + }, + "0xbaf6dc2e647aeb6f510f9e318856a1bcd66c5e19": { + "balance": "0x48b70935a04104bc", + "nonce": "11402" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x33cb67fca946d8da4bc1d", + "code": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029", + "nonce": "1", + "storage": { + "0x1442c20decac5e9285a003f6453d0611949f802121acdd6ff5a704143dd017db": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8629dae9a04a429781ee2d74cc5f87aff82085ecefb8c4f0101ac2b519e300e1": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc92c3a279814545c4590501add24843ce5413758f3869cb4885635cbbdbbaa51": "0x0000000000000000000000000000000000000000000075b6c54d53d2a2d6d3a7" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "balance": "0x71afd498d0014", + "code": "0x6080604052600436106101dc5760003560e01c8063affed0e011610102578063e19a9dd911610095578063f08a032311610064578063f08a032314611647578063f698da2514611698578063f8dc5dd9146116c3578063ffa1ad741461173e57610231565b8063e19a9dd91461139b578063e318b52b146113ec578063e75235b81461147d578063e86637db146114a857610231565b8063cc2f8452116100d1578063cc2f8452146110e8578063d4d9bdcd146111b5578063d8d11f78146111f0578063e009cfde1461132a57610231565b8063affed0e014610d94578063b4faba0914610dbf578063b63e800d14610ea7578063c4ca3a9c1461101757610231565b80635624b25b1161017a5780636a761202116101495780636a761202146109945780637d83297414610b50578063934f3a1114610bbf578063a0e67e2b14610d2857610231565b80635624b25b146107fb5780635ae6bd37146108b9578063610b592514610908578063694e80c31461095957610231565b80632f54bf6e116101b65780632f54bf6e146104d35780633408e4701461053a578063468721a7146105655780635229073f1461067a57610231565b80630d582f131461029e57806312fb68e0146102f95780632d9ad53d1461046c57610231565b36610231573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d346040518082815260200191505060405180910390a2005b34801561023d57600080fd5b5060007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b905080548061027257600080f35b36600080373360601b365260008060143601600080855af13d6000803e80610299573d6000fd5b3d6000f35b3480156102aa57600080fd5b506102f7600480360360408110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ce565b005b34801561030557600080fd5b5061046a6004803603608081101561031c57600080fd5b81019080803590602001909291908035906020019064010000000081111561034357600080fd5b82018360208201111561035557600080fd5b8035906020019184600183028401116401000000008311171561037757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103da57600080fd5b8201836020820111156103ec57600080fd5b8035906020019184600183028401116401000000008311171561040e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611bbe565b005b34801561047857600080fd5b506104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612440565b60405180821515815260200191505060405180910390f35b3480156104df57600080fd5b50610522600480360360208110156104f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612512565b60405180821515815260200191505060405180910390f35b34801561054657600080fd5b5061054f6125e4565b6040518082815260200191505060405180910390f35b34801561057157600080fd5b506106626004803603608081101561058857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105cf57600080fd5b8201836020820111156105e157600080fd5b8035906020019184600183028401116401000000008311171561060357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506125f1565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506107776004803603608081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106e457600080fd5b8201836020820111156106f657600080fd5b8035906020019184600183028401116401000000008311171561071857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506127d7565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561080757600080fd5b5061083e6004803603604081101561081e57600080fd5b81019080803590602001909291908035906020019092919050505061280d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087e578082015181840152602081019050610863565b50505050905090810190601f1680156108ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c557600080fd5b506108f2600480360360208110156108dc57600080fd5b8101908080359060200190929190505050612894565b6040518082815260200191505060405180910390f35b34801561091457600080fd5b506109576004803603602081101561092b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b005b34801561096557600080fd5b506109926004803603602081101561097c57600080fd5b8101908080359060200190929190505050612c3e565b005b610b3860048036036101408110156109ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109f257600080fd5b820183602082011115610a0457600080fd5b80359060200191846001830284011164010000000083111715610a2657600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610ab257600080fd5b820183602082011115610ac457600080fd5b80359060200191846001830284011164010000000083111715610ae657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612d78565b60405180821515815260200191505060405180910390f35b348015610b5c57600080fd5b50610ba960048036036040811015610b7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132b5565b6040518082815260200191505060405180910390f35b348015610bcb57600080fd5b50610d2660048036036060811015610be257600080fd5b810190808035906020019092919080359060200190640100000000811115610c0957600080fd5b820183602082011115610c1b57600080fd5b80359060200191846001830284011164010000000083111715610c3d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ca057600080fd5b820183602082011115610cb257600080fd5b80359060200191846001830284011164010000000083111715610cd457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506132da565b005b348015610d3457600080fd5b50610d3d613369565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d80578082015181840152602081019050610d65565b505050509050019250505060405180910390f35b348015610da057600080fd5b50610da9613512565b6040518082815260200191505060405180910390f35b348015610dcb57600080fd5b50610ea560048036036040811015610de257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610e1f57600080fd5b820183602082011115610e3157600080fd5b80359060200191846001830284011164010000000083111715610e5357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613518565b005b348015610eb357600080fd5b506110156004803603610100811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846020830284011164010000000083111715610f1c57600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f6757600080fd5b820183602082011115610f7957600080fd5b80359060200191846001830284011164010000000083111715610f9b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061353a565b005b34801561102357600080fd5b506110d26004803603608081101561103a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561108157600080fd5b82018360208201111561109357600080fd5b803590602001918460018302840111640100000000831117156110b557600080fd5b9091929391929390803560ff1690602001909291905050506136f8565b6040518082815260200191505060405180910390f35b3480156110f457600080fd5b506111416004803603604081101561110b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613820565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b838110156111a0578082015181840152602081019050611185565b50505050905001935050505060405180910390f35b3480156111c157600080fd5b506111ee600480360360208110156111d857600080fd5b8101908080359060200190929190505050613a12565b005b3480156111fc57600080fd5b50611314600480360361014081101561121457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561125b57600080fd5b82018360208201111561126d57600080fd5b8035906020019184600183028401116401000000008311171561128f57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb1565b6040518082815260200191505060405180910390f35b34801561133657600080fd5b506113996004803603604081101561134d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bde565b005b3480156113a757600080fd5b506113ea600480360360208110156113be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f6f565b005b3480156113f857600080fd5b5061147b6004803603606081101561140f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ff3565b005b34801561148957600080fd5b50611492614665565b6040518082815260200191505060405180910390f35b3480156114b457600080fd5b506115cc60048036036101408110156114cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561151357600080fd5b82018360208201111561152557600080fd5b8035906020019184600183028401116401000000008311171561154757600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061466f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561160c5780820151818401526020810190506115f1565b50505050905090810190601f1680156116395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561165357600080fd5b506116966004803603602081101561166a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614817565b005b3480156116a457600080fd5b506116ad614878565b6040518082815260200191505060405180910390f35b3480156116cf57600080fd5b5061173c600480360360608110156116e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506148f6565b005b34801561174a57600080fd5b50611753614d29565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611793578082015181840152602081019050611778565b50505050905090810190601f1680156117c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6117d6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118405750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561187857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414611bba57611bb981612c3e565b5b5050565b611bd2604182614e0590919063ffffffff16565b82511015611c48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808060008060005b8681101561243457611c648882614e3f565b80945081955082965050505060008460ff16141561206d578260001c9450611c96604188614e0590919063ffffffff16565b8260001c1015611d0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8751611d2760208460001c614e6e90919063ffffffff16565b1115611d9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006020838a01015190508851611dd182611dc360208760001c614e6e90919063ffffffff16565b614e6e90919063ffffffff16565b1115611e45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ee7578082015181840152602081019050611ecc565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611f4d578082015181840152602081019050611f32565b50505050905090810190601f168015611f7a5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015611f9957600080fd5b505afa158015611fad573d6000803e3d6000fd5b505050506040513d6020811015611fc357600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506122b2565b60018460ff161415612181578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061210a57506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b61217c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6122b1565b601e8460ff1611156122495760018a60405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012060048603858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612238573d6000803e3d6000fd5b5050506020604051035194506122b0565b60018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156122a3573d6000803e3d6000fd5b5050506020604051035194505b5b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161180156123795750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156123b25750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b612424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323600000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8495508080600101915050611c52565b50505050505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600173ffffffffffffffffffffffffffffffffffffffff161415801561250b5750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125dd5750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000804690508091505090565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126bc5750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61272e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61273b858585855a614e8d565b9050801561278b573373ffffffffffffffffffffffffffffffffffffffff167f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb860405160405180910390a26127cf565b3373ffffffffffffffffffffffffffffffffffffffff167facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37560405160405180910390a25b949350505050565b600060606127e7868686866125f1565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006020830267ffffffffffffffff8111801561282b57600080fd5b506040519080825280601f01601f19166020018201604052801561285e5781602001600182028036833780820191505090505b50905060005b8381101561288957808501548060208302602085010152508080600101915050612864565b508091505092915050565b60076020528060005260406000206000915090505481565b6128b4614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561291e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b612990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612c46614d62565b600354811115612cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811015612d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b6000806000612d928e8e8e8e8e8e8e8e8e8e60055461466f565b905060056000815480929190600101919050555080805190602001209150612dbb8282866132da565b506000612dc6614ed9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612fac578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b8152600401808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c8152602001806020018a6001811115612e6957fe5b81526020018981526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528d8d82818152602001925080828437600081840152601f19601f820116905080830192505050838103825285818151815260200191508051906020019080838360005b83811015612f3b578082015181840152602081019050612f20565b50505050905090810190601f168015612f685780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050600060405180830381600087803b158015612f9357600080fd5b505af1158015612fa7573d6000803e3d6000fd5b505050505b6101f4612fd36109c48b01603f60408d0281612fc457fe5b04614f0a90919063ffffffff16565b015a1015613049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005a90506130b28f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008d146130a7578e6130ad565b6109c45a035b614e8d565b93506130c75a82614f2490919063ffffffff16565b905083806130d6575060008a14155b806130e2575060008814155b613154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008089111561316e5761316b828b8b8b8b614f44565b90505b84156131b8577f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e8482604051808381526020018281526020019250505060405180910390a16131f8565b7f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d238482604051808381526020018281526020019250505060405180910390a15b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146132a4578073ffffffffffffffffffffffffffffffffffffffff16639327136883856040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561328b57600080fd5b505af115801561329f573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b6000600454905060008111613357576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61336384848484611bbe565b50505050565b6060600060035467ffffffffffffffff8111801561338657600080fd5b506040519080825280602002602001820160405280156133b55781602001602082028036833780820191505090505b50905060008060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613509578083838151811061346057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061341f565b82935050505090565b60055481565b600080825160208401855af4806000523d6020523d600060403e60403d016000fd5b6135858a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508961514a565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135c3576135c28461564a565b5b6136118787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615679565b600082111561362b5761362982600060018685614f44565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b8960405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281038252878782818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a250505050505050505050565b6000805a905061374f878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050865a614e8d565b61375857600080fd5b60005a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137e55780820151818401526020810190506137ca565b50505050905090810190601f1680156138125780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b606060008267ffffffffffffffff8111801561383b57600080fd5b5060405190808252806020026020018201604052801561386a5781602001602082028036833780820191505090505b509150600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561393d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561394857508482105b15613a03578084838151811061395a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506138d3565b80925081845250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16817ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c60405160405180910390a350565b6000613bc68c8c8c8c8c8c8c8c8c8c8c61466f565b8051906020012090509b9a5050505050505050505050565b613be6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613c505750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b613cc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613dc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613f77614d62565b60007f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b90508181557f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa282604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613ffb614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156140655750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561409d57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61410f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561427a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6142ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146143ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405180838380828437808301925050509250505060405180910390208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a815260200189815260200188600181111561470057fe5b81526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b61478c614878565b8360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509b9a5050505050505050505050565b61481f614d62565b6148288161564a565b7f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921860001b6148a66125e4565b30604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405160208183030381529060405280519060200120905090565b6148fe614d62565b806001600354031015614979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156149e35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614a55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614b55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414614d2457614d2381612c3e565b5b505050565b6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614e03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b565b600080831415614e185760009050614e39565b6000828402905082848281614e2957fe5b0414614e3457600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614e8357600080fd5b8091505092915050565b6000600180811115614e9b57fe5b836001811115614ea757fe5b1415614ec0576000808551602087018986f49050614ed0565b600080855160208701888a87f190505b95945050505050565b6000807f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b9050805491505090565b600081831015614f1a5781614f1c565b825b905092915050565b600082821115614f3357600080fd5b600082840390508091505092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614f815782614f83565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561509b57614fed3a8610614fca573a614fcc565b855b614fdf888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050615096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b615140565b6150c0856150b2888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91506150cd8482846158b4565b61513f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5095945050505050565b6000600454146151c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8151811115615239576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018110156152b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006001905060005b83518110156155b65760008482815181106152d057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156153445750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561537c57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156153b457508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b615426576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092505080806001019150506152b9565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b60007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461577b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146158b05761583d8260008360015a614e8d565b6158af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5050565b60008063a9059cbb8484604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050602060008251602084016000896127105a03f13d6000811461595b5760208114615963576000935061596e565b81935061596e565b600051158215171593505b505050939250505056fea26469706673582212203874bcf92e1722cc7bfa0cef1a0985cf0dc3485ba0663db3747ccdf1605df53464736f6c63430007060033", + "nonce": "1" + }, + "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be": { + "balance": "0x13cc5cb7f866bf2a1", + "code": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000023", + "0x311d6f25482807f0b0d46f6fafeb0c07abb26f38af26360b2d841fb5e32d1111": "0x0000000000000000000000002900ac563eab8d2d9da21ceb07a66e3bbe2fbe26", + "0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x58e147b099549d92d3f037e88e03bccd6809c3d28a894f441bc7a049e077b95c": "0x000000000000000000000000bd5b82b95d7c25f5f7767ecbdd5d3ea8fb63c09c", + "0x7feb34d70f880434f7b1e4bb8b4f0e58735b8893360e1666e7cebfad5910ba77": "0x0000000000000000000000004ea32106019d314cd50cd6121d616e511ada7782" + } + } + }, + "config": { + "chainName": "mainnet", + "chainId": 1, + "consensus": "ethash", + "homesteadBlock": 1150000, + "daoForkBlock": 1920000, + "eip150Block": 2463000, + "eip155Block": 2675000, + "byzantiumBlock": 4370000, + "constantinopleBlock": 7280000, + "petersburgBlock": 7280000, + "istanbulBlock": 9069000, + "muirGlacierBlock": 9200000, + "berlinBlock": 12244000, + "londonBlock": 12965000, + "arrowGlacierBlock": 13773000, + "grayGlacierBlock": 15050000, + "terminalTotalDifficulty": null, + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 1681338455, + "cancunTime": 1710338135, + "ethash": {}, + "noPruneContracts": { + "0x00000000219ab540356cbb839cbe05303d7705fa": true + } + }, + "gasLimit": "30000000", + "difficulty": "0" + }, + "context": { + "number": "16494085", + "hash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "difficulty": "0", + "timestamp": "1674773399", + "gasLimit": "30000000", + "baseFeePerGas": "26264939160", + "miner": "0xBaF6dC2E647aeb6F510f9e318856A1BCd66C5e19", + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277 + }, + "input": "0x02f90433018229ee8459682f008507735940008306a17894ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be80b903c46a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000c0809fd599bfb27f78926f546e1ec2bbb39e7b91e5bdba54be97a16212045210ba7da06354952e8b7662cdc82ce4b6b4a5ffab9fbb58e010d6322a3b7b721d23952f66", + "result": [ + { + "action": { + "from": "0x519e19eac9ead404343c68224dd2a22c5c25f992", + "callType": "call", + "gas": "0x631f0", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "to": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5e43e", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 1, + "traceAddress": [], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "callType": "delegatecall", + "gas": "0x60615", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "to": "0xd9db270c1b5e3bd161e8c8503c55ceabee709552", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5d0b0", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 1, + "traceAddress": [ + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "callType": "call", + "gas": "0x560b3", + "input": "0x1cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000000000000000", + "to": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "value": "0x1314fb37062980000" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x53a37", + "output": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "subtraces": 1, + "traceAddress": [ + 0, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "delegatecall", + "gas": "0x51f84", + "input": "0x1c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000", + "to": "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038", + "value": "0x1314fb37062980000" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x50d61", + "output": "0x" + }, + "subtraces": 14, + "traceAddress": [ + 0, + 0, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x4fe81", + "input": "0x2726b0730000000000000000000000000000000000000000000000000000000000007587", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xa34", + "output": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x4f2da", + "input": "0x36569e77", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x95e", + "output": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x4e7f3", + "input": "0x2c2cb9fd0000000000000000000000000000000000000000000000000000000000007587", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x9b6", + "output": "0x4554482d41000000000000000000000000000000000000000000000000000000" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 2 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x4d333", + "input": "0x7bd2bea7", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x98a", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 3 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x4a4fa", + "input": "0xd0e30db0", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x1314fb37062980000" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5da6", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 4 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x44751", + "input": "0x7bd2bea7", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x1ba", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 5 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x443e1", + "input": "0x095ea7b30000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5f64", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 6 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x3e467", + "input": "0x3b4da69f000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xcf11", + "output": "0x" + }, + "subtraces": 2, + "traceAddress": [ + 0, + 0, + 0, + 7 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "callType": "call", + "gas": "0x3b018", + "input": "0x7cdd3fde4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x732c", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 7, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "callType": "call", + "gas": "0x33c93", + "input": "0x23b872dd000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x22f4", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 7, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x30d0f", + "input": "0x44e2a5a84554482d41000000000000000000000000000000000000000000000000000000", + "to": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xde8c", + "output": "0x00000000000000000000000000000000000000000380cda8be5c7905bb99b3dd" + }, + "subtraces": 2, + "traceAddress": [ + 0, + 0, + 0, + 8 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "callType": "call", + "gas": "0x2eda5", + "input": "0xd9638d364554482d41000000000000000000000000000000000000000000000000000000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x2b56", + "output": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e28435600000000000000000000000000000000000000000380ccf64585d61dfc80728d000000000000000000000000000000000000000dee286c5d5714c921f9f6469e00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de5200000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 8, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "callType": "call", + "gas": "0x29b33", + "input": "0xb65337df4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000a950524441892a31ebddf91d3ceefa04bf4544660000000000000000000000000000000000000000000000b278d6a2e7bf194150", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5a46", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 8, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x23046", + "input": "0x6c25b346000000000000000000000000dd805914a055a090892158f57dca419e8042746a", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x9e8", + "output": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 9 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x221b4", + "input": "0x45e6bdcd0000000000000000000000000000000000000000000000000000000000007587000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x9af4", + "output": "0x" + }, + "subtraces": 1, + "traceAddress": [ + 0, + 0, + 0, + 10 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "callType": "call", + "gas": "0x20b33", + "input": "0x760887034554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x7ba9", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 10, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x186af", + "input": "0xf9f30db60000000000000000000000000000000000000000000000000000000000007587000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x83ad", + "output": "0x" + }, + "subtraces": 1, + "traceAddress": [ + 0, + 0, + 0, + 11 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "callType": "call", + "gas": "0x17b3b", + "input": "0xbb35783b000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x6d27", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 11, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x1036f", + "input": "0x4538c4eb000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xa35", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 12 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0xee07", + "input": "0xef693bed000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "to": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xdf71", + "output": "0x" + }, + "subtraces": 2, + "traceAddress": [ + 0, + 0, + 0, + 13 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "callType": "call", + "gas": "0xd6a5", + "input": "0xbb35783b000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x2a5b", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 13, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "callType": "call", + "gas": "0x999d", + "input": "0x40c10f19000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "to": "0x6b175474e89094c44da98b954eedeac495271d0f", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x7c65", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0, + 0, + 13, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + } + ] +} \ No newline at end of file diff --git a/turbo/jsonrpc/testdata/oetracer/tracer_config_include_precompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json b/turbo/jsonrpc/testdata/oetracer/tracer_config_include_precompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json new file mode 100644 index 00000000000..d048d7047af --- /dev/null +++ b/turbo/jsonrpc/testdata/oetracer/tracer_config_include_precompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json @@ -0,0 +1,905 @@ +{ + "genesis": { + "alloc": { + "0x0000000000000000000000000000000000000001": { + "balance": "0x2e0636ccb6044b740" + }, + "0x19c0976f590d67707e62397c87829d896dc0f1f1": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063626cb3c511610071578063626cb3c51461020b57806365fae35e146102555780639c52a7f114610299578063bf353dbb146102dd578063d4e8be8314610335578063d9638d3614610383576100b4565b80631a0b287e146100b957806329ae8114146100fb57806336569e77146101335780633b6631951461017d57806344e2a5a8146101ab5780635001f3b5146101ed575b600080fd5b6100f9600480360360608110156100cf57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506103cc565b005b6101316004803603604081101561011157600080fd5b8101908080359060200190929190803590602001909291905050506105f9565b005b61013b610786565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a96004803603602081101561019357600080fd5b81019080803590602001909291905050506107ac565b005b6101d7600480360360208110156101c157600080fd5b8101908080359060200190929190505050610946565b6040518082815260200191505060405180910390f35b6101f5610c35565b6040518082815260200191505060405180910390f35b610213610c3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102976004803603602081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c61565b005b6102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8f565b005b61031f600480360360208110156102f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebd565b6040518082815260200191505060405180910390f35b6103816004803603604081101561034b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed5565b005b6103af6004803603602081101561039957600080fd5b810190808035906020019092919050505061109c565b604051808381526020018281526020019250505060405180910390f35b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610480576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600084815260200190815260200160002060010154421461050b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4a75672f72686f2d6e6f742d757064617465640000000000000000000000000081525060200191505060405180910390fd5b7f6475747900000000000000000000000000000000000000000000000000000000821415610553578060016000858152602001908152602001600020600001819055506105c1565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f62617365000000000000000000000000000000000000000000000000000000008214156106e1578060048190555061074f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610860576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b600060016000838152602001908152602001600020905060008160000154146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4a75672f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce80000008160000181905550428160010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b600060016000838152602001908152602001600020600101544210156109d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4a75672f696e76616c69642d6e6f77000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b158015610a4a57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b505050506040513d6040811015610a7457600080fd5b810190808051906020019092919080519060200190929190505050915050610aeb610ae5610aba60045460016000888152602001908152602001600020600001546110c0565b600160008781526020019081526020016000206001015442036b033b2e3c9fd0803ce80000006110da565b826111a0565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b65337df84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b5986866111e5565b6040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bc957600080fd5b505af1158015610bdd573d6000803e3d6000fd5b50505050426001600085815260200190815260200160002060010181905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450919050565b60045481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4a75672f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f766f770000000000000000000000000000000000000000000000000000000000821415610ff75780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611065565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4a75672f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016020528060005260406000206000915090508060000154908060010154905082565b60008183019050828110156110d457600080fd5b92915050565b600083600081146111805760028406600081146110f9578592506110fd565b8392505b50600283046002850494505b841561117a57858602868782041461112057600080fd5b8181018181101561113057600080fd5b8581049750600287061561116d57878502858982041415891515161561115557600080fd5b8381018181101561116557600080fd5b878104965050505b5050600285049450611109565b50611198565b83600081146111925760009250611196565b8392505b505b509392505050565b6000818302905060008214806111be5750828282816111bb57fe5b04145b6111c757600080fd5b6b033b2e3c9fd0803ce800000081816111dc57fe5b04905092915050565b60008183039050600083121580156111fe575060008212155b61120757600080fd5b9291505056fea265627a7a723158201f0f7975dfa300ecdb0df09b00b4c72acd04d6776756f811d747fa04dd51ca1b64736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000a950524441892a31ebddf91d3ceefa04bf454466", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947015": "0x0000000000000000000000000000000000000000033b2e3ca65dca26e20d5eda", + "0xddedd75666d350fcd985cb35e3b9f2d4f288318d97268199e03d4405df947016": "0x0000000000000000000000000000000000000000000000000000000063d2ea77" + } + }, + "0x2f0b23f53734252bda2277357e97e1517d6b042a": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063957aa58c11610071578063957aa58c146101de5780639c52a7f1146101fc578063b3bcfa8214610240578063bf353dbb1461025e578063c5ce281e146102b6578063ef693bed146102d4576100a9565b806336569e77146100ae5780633b4da69f146100f857806365fae35e14610146578063692450091461018a5780637bd2bea714610194575b600080fd5b6100b6610322565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101446004803603604081101561010e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610348565b005b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106c3565b005b6101926107f1565b005b61019c6108e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e6610908565b6040518082815260200191505060405180910390f35b61023e6004803603602081101561021257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090e565b005b610248610a3c565b6040518082815260200191505060405180910390f35b6102a06004803603602081101561027457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a42565b6040518082815260200191505060405180910390f35b6102be610a5a565b6040518082815260200191505060405180910390f35b610320600480360360408110156102ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001600554146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b6000811215610437576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025484846040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156104ea57600080fd5b505af11580156104fe573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d602081101561060957600080fd5b810190808051906020019092919050505061068c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610777576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006005819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60045481565b60006020528060005260406000206000915090505481565b60025481565b7f8000000000000000000000000000000000000000000000000000000000000000811115610af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025433846000036040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bac57600080fd5b505af1158015610bc0573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050506040513d6020811015610c9757600080fd5b8101908080519060200190929190505050610d1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505056fea265627a7a72315820bfdfa122fe3ad43a5d779b939c506cae7507e0f5e807767f61193161f1c1e28664736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80637cdd3fde116100f9578063bb35783b11610097578063dc4d20fa11610071578063dc4d20fa1461096c578063f059212a146109b0578063f24e23eb14610a08578063f37ac61c14610a76576101c4565b8063bb35783b14610848578063bf353dbb146108b6578063d9638d361461090e576101c4565b80639c52a7f1116100d35780639c52a7f11461074a578063a3b22fc41461078e578063b65337df146107d2578063babe8a3f1461082a576101c4565b80637cdd3fde14610652578063870c616d146106aa578063957aa58c1461072c576101c4565b80634538c4eb11610166578063692450091161014057806369245009146104ac5780636c25b346146104b6578063760887031461050e5780637bab3f40146105b0576101c4565b80634538c4eb146103785780636111be2e146103f057806365fae35e14610468576101c4565b80632424be5c116101a25780632424be5c1461028b57806329ae8114146102f45780632d61a3551461032c5780633b6631951461034a576101c4565b80630dca59c1146101c95780631a0b287e146101e7578063214414d514610229575b600080fd5b6101d1610aa4565b6040518082815260200191505060405180910390f35b610227600480360360608110156101fd57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610aaa565b005b6102756004803603604081101561023f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d58565b6040518082815260200191505060405180910390f35b6102d7600480360360408110156102a157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7d565b604051808381526020018281526020019250505060405180910390f35b61032a6004803603604081101561030a57600080fd5b810190808035906020019092919080359060200190929190505050610dae565b005b610334610fb5565b6040518082815260200191505060405180910390f35b6103766004803603602081101561036057600080fd5b8101908080359060200190929190505050610fbb565b005b6103da6004803603604081101561038e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061115a565b6040518082815260200191505060405180910390f35b6104666004803603608081101561040657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061117f565b005b6104aa6004803603602081101561047e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611392565b005b6104b461153a565b005b6104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162d565b6040518082815260200191505060405180910390f35b6105ae600480360360c081101561052457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611645565b005b610650600480360360c08110156105c657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e31565b005b6106a86004803603606081101561066857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612130565b005b61072a600480360360a08110156106c057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506122cc565b005b610734612700565b6040518082815260200191505060405180910390f35b61078c6004803603602081101561076057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612706565b005b6107d0600480360360208110156107a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ae565b005b610828600480360360608110156107e857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612967565b005b610832612bac565b6040518082815260200191505060405180910390f35b6108b46004803603606081101561085e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bb2565b005b6108f8600480360360208110156108cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d80565b6040518082815260200191505060405180910390f35b61093a6004803603602081101561092457600080fd5b8101908080359060200190929190505050612d98565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6109ae6004803603602081101561098257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dce565b005b6109f2600480360360208110156109c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e88565b6040518082815260200191505060405180910390f35b610a7460048036036060811015610a1e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ea0565b005b610aa260048036036020811015610a8c57600080fd5b81019080803590602001909291905050506130ca565b005b60075481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f73706f7400000000000000000000000000000000000000000000000000000000821415610c1e57806002600085815260200190815260200160002060020181905550610d1e565b7f6c696e6500000000000000000000000000000000000000000000000000000000821415610c6657806002600085815260200190815260200160002060030181905550610d1d565b7f6475737400000000000000000000000000000000000000000000000000000000821415610cae57806002600085815260200190815260200160002060040181905550610d1c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5b5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6003602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f4c696e6500000000000000000000000000000000000000000000000000000000821415610f0e5780600981905550610f7c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5661742f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050565b60085481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461106f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006002600083815260200190815260200160002060010154146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f696c6b2d616c72656164792d696e697400000000000000000000000081525060200191505060405180910390fd5b6b033b2e3c9fd0803ce800000060026000838152602001908152602001600020600101819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b6001602052816000526040600020602052806000526040600020600091509150505481565b6111898333613244565b6111fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6112556004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b6004600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113036004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b6004600086815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611446576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a54146114be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6000600a819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450565b60056020528060005260406000206000915090505481565b6001600a54146116bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6116c5613437565b6003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905061173e613451565b600260008981526020019081526020016000206040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905060008160200151141561180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f696c6b2d6e6f742d696e69740000000000000000000000000000000081525060200191505060405180910390fd5b611819826000015185613338565b826000018181525050611830826020015184613338565b826020018181525050611847816000015184613338565b8160000181815250506000611860826020015185613377565b90506000611876836020015185602001516133b2565b905061188460075483613338565b6007819055506118c060008613156118bb85606001516118ac876000015188602001516133b2565b111560095460075411156133de565b6133eb565b611932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5661742f6365696c696e672d657863656564656400000000000000000000000081525060200191505060405180910390fd5b611961611947600087131560008912156133de565b611959866000015186604001516133b2565b8311156133eb565b6119d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d73616665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6119f76119e8600087131560008912156133de565b6119f28b33613244565b6133eb565b611a69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7500000000000000000000000000000081525060200191505060405180910390fd5b611a806000871315611a7b8a33613244565b6133eb565b611af2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7600000000000000000000000000000081525060200191505060405180910390fd5b611b096000861215611b048933613244565b6133eb565b611b7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5661742f6e6f742d616c6c6f7765642d7700000000000000000000000000000081525060200191505060405180910390fd5b611b93600085602001511484608001518310156133eb565b611c05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f5661742f6475737400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611c5f600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054876133f8565b600460008c815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cfc600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613338565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600360008c815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015590505082600260008c81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60006003600088815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600260008981526020019081526020016000209050611f5e826000015485613338565b8260000181905550611f74826001015484613338565b8260010181905550611f8a816000015484613338565b81600001819055506000611fa2826001015485613377565b9050611ffe600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866133f8565b600460008b815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061209b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826133f8565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ea600854826133f8565b6008819055505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146121e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b61223e6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b6004600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006003600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006003600088815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002600089815260200190815260200160002090506123998360000154866133f8565b83600001819055506123af8360010154856133f8565b83600101819055506123c5826000015486613338565b82600001819055506123db826001015485613338565b826001018190555060006123f7846001015483600101546133b2565b9050600061240d846001015484600101546133b2565b905061242b61241c8a33613244565b6124268a33613244565b6133de565b61249d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6124af856000015484600201546133b2565b821115612524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d7372630000000000000000000000000000000081525060200191505060405180910390fd5b612536846000015484600201546133b2565b8111156125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5661742f6e6f742d736166652d6473740000000000000000000000000000000081525060200191505060405180910390fd5b6125c3836004015483101560008760010154146133eb565b612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d737263000000000000000000000000000000000000000081525060200191505060405180910390fd5b61264d836004015482101560008660010154146133eb565b6126bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f647573742d647374000000000000000000000000000000000000000081525060200191505060405180910390fd5b50505050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a4505050505050565b600a5481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146127ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6001600a5414612a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5661742f6e6f742d6c697665000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260008581526020019081526020016000209050612ab8816001015483613338565b81600101819055506000612ad0826000015484613377565b9050612b1b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613338565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6a60075482613338565b60078190555050505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60095481565b612bbc8333613244565b612c2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5661742f6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b612c77600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613304565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d03600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b60006020528060005260406000206000915090505481565b60026020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60066020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5661742f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b612f9d600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613029600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261331e565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130786008548261331e565b60088190555061308a6007548261331e565b6007819055505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a450505050565b6000339050613118600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131a4600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613304565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131f360085483613304565b60088190555061320560075483613304565b600781905550505961012081016040526020815260e0602082015260e06000604083013760443560243560043560003560e01c60e01b61012085a45050565b60006132fc8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161460018060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146133eb565b905092915050565b600082828403915081111561331857600080fd5b92915050565b600082828401915081101561333257600080fd5b92915050565b6000818301905060008212158061334f5750828111155b61335857600080fd5b6000821315806133685750828110155b61337157600080fd5b92915050565b60008183029050600083121561338c57600080fd5b60008214806133a35750828282816133a057fe5b05145b6133ac57600080fd5b92915050565b6000808214806133cf57508282838502925082816133cc57fe5b04145b6133d857600080fd5b92915050565b6000818316905092915050565b6000818317905092915050565b6000818303905060008213158061340f5750828111155b61341857600080fd5b6000821215806134285750828110155b61343157600080fd5b92915050565b604051806040016040528060008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fea265627a7a723158208a74d6db3d5b0eba259e13b86f201f0fda2be3ffedbc0b4f90a67d87593f4de764736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000007": "0x0000000000000000003d3d67f3d7d8a25bc1c037c1740d24aa03e289b6252300", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x0000000000000000004b9f290913b5bf9a382b54d06234482cf1f7e0cfda70ab", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x099e89cca7ffe1d2fcd345b67a28e02e04474aa4d90f285fcc24596ad4e02166": "0x000000000000000000071cbf8d399b90123a8d1e02f6f6534683a51cf0ea7930", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece131": "0x00000000000000000000000000000000000000000000000100bd33fb98ba0000", + "0x2ff0b466a25138f032ca0c325083d19dc8a68e3462520c36686a1c7a0fece132": "0x0000000000000000000000000000000000000000000002ee2ccae7afb419fb3c", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bb": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e284356", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bc": "0x00000000000000000000000000000000000000000380ccf64585d61dfc80728d", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bd": "0x000000000000000000000000000000000000000dee286c5d5714c921f9f6469e", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603be": "0x00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de52", + "0x5cd43a2b0a7e767504a508ed07c6f6d26130368a2a5ce573193b4c24eba603bf": "0x00000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000", + "0x6e75488ddfb650532684741eb749ac29db15c8cd59d7771c466155b09612ad73": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x76d2f8c9c940909546724749d054410d1b135d6ef5a8bfd0282076cddf92341a": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x7adce341587c7ad28f80a9ef54da0d2f0bfd917b11856be2d246a8c66685b1a0": "0x00000000000000000035b22aa5a2c02ba12ba32fd0477f78170a5fa138000000", + "0x7dd215c1c7bcd252f448890ba9ae168596a6af47f2681a1a28e1bf27b5852a96": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8", + "0x8ac5aa31fc59e05e568a0740a98215030c52ef77851d6455526a8fb927e5faef": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9b06c498c1411f7819ef58913eda44a81e9bfe5678cc341ce6899b997142b937": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x9cba659f061d332adc7f618d3ee453592937192458a7ec7299d1231dedc537b8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc450373d07c0691a78dacf78508240f60ba6e2a98fe98dd05ed39cf53e29ac3d": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x519e19eac9ead404343c68224dd2a22c5c25f992": { + "balance": "0x2fa15b25b57acff", + "nonce": "10734" + }, + "0x5ef30b9986345249bc32d8928b7ee64de9435e39": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806380c9419e116100b8578063b3d178f21161007c578063b3d178f2146106f4578063b68f400414610712578063e50322a214610760578063f9f30db614610798578063fc73d771146107f0578063fcafcc681461084857610142565b806380c9419e146105155780638161b1201461055e5780639a816f7d146105cc5780639bb8f83814610624578063b2b192e61461067c57610142565b80632c2cb9fd1161010a5780632c2cb9fd1461031557806336569e771461035757806345e6bdcd146103a15780635aebb460146103e35780636090dec5146104655780637e348b7d146104c757610142565b806305d85eda146101475780630b63fb621461019f57806318af4d60146101f75780631b0dbf72146102595780632726b073146102a7575b600080fd5b6101896004803603602081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610896565b6040518082815260200191505060405180910390f35b6101f5600480360360608110156101b557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ae565b005b6102576004803603608081101561020d57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b19565b005b6102a56004803603604081101561026f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e22565b005b6102d3600480360360208110156102bd57600080fd5b81019080803590602001909291905050506113b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103416004803603602081101561032b57600080fd5b81019080803590602001909291905050506113ea565b6040518082815260200191505060405180910390f35b61035f611402565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e1600480360360608110156103b757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611427565b005b61044f600480360360608110156103f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611784565b6040518082815260200191505060405180910390f35b6104b16004803603604081101561047b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b6565b6040518082815260200191505060405180910390f35b610513600480360360408110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cac565b005b6105416004803603602081101561052b57600080fd5b810190808035906020019092919050505061220e565b604051808381526020018281526020019250505060405180910390f35b61058a6004803603602081101561057457600080fd5b8101908080359060200190929190505050612232565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61060e600480360360208110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612265565b6040518082815260200191505060405180910390f35b61067a6004803603606081101561063a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061227d565b005b6106de6004803603604081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612598565b6040518082815260200191505060405180910390f35b6106fc6125bd565b6040518082815260200191505060405180910390f35b61075e6004803603604081101561072857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125c3565b005b6107966004803603604081101561077657600080fd5b810190808035906020019092919080359060200190929190505050612648565b005b6107ee600480360360608110156107ae57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d22565b005b6108326004803603602081101561080657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613022565b6040518082815260200191505060405180910390f35b6108946004803603604081101561085e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061303a565b005b60086020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109dc57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b81600960006004600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c4757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610cb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e866002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610fc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061107957506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6110eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d604081101561120357600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886112b1876139ab565b6112ba876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561136457600080fd5b505af1158015611378573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061155557506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6115c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b60006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376088703600560008881526020019081526020016000205483848589896040518763ffffffff1660e01b8152600401808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b5050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600960205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561185a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7573722d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b61186760015460016139c3565b6001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161189b906139f7565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156118ed573d6000803e3d6000fd5b5060026000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160046000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006001548152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611a3e57600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b3e57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060015481526020019081526020016000206000018190555060015460036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b600154600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bce600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001548273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd6be0bc178658a382ff4f91c8c68b542aa6b71685b8fe427966b87745c3ea7a260405160405180910390a460015490505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45092915050565b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d6357506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f75726e2d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f0357506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611f75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600088815260200190815260200160002054886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561203057600080fd5b505afa158015612044573d6000803e3d6000fd5b505050506040513d604081101561205a57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d600560008881526020019081526020016000205488600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612108876139ab565b612111876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156121bb57600080fd5b505af11580156121cf573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60036020528060005260406000206000915090508060000154908060010154905082565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123ab57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b61241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636111be2e60056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b15801561254757600080fd5b505af115801561255b573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b600a602052816000526040600020602052806000526040600020600091509150505481565b60015481565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061277657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6127e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061291657506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6005600084815260200190815260200160002054600560008681526020019081526020016000205414612a23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6e6f6e2d6d61746368696e672d6364707300000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015612b1157600080fd5b505afa158015612b25573d6000803e3d6000fd5b505050506040513d6040811015612b3b57600080fd5b810190808051906020019092919080519060200190929190505050915091506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663870c616d6005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612c1c876139ab565b612c25876139ab565b6040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015612ccf57600080fd5b505af1158015612ce3573d6000803e3d6000fd5b50505050505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612e5057506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612ec2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b6002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015612fd157600080fd5b505af1158015612fe5573d6000803e3d6000fd5b50505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505050565b60066020528060005260406000206000915090505481565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061316857506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6131da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6364702d6e6f742d616c6c6f776564000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561327d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6473742d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b6004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6473742d616c72656164792d6f776e657200000000000000000000000000000081525060200191505060405180910390fd5b60006003600085815260200190815260200160002060000154146133b85760036000848152602001908152602001600020600101546003600060036000878152602001908152602001600020600001548152602001908152602001600020600101819055505b60006003600085815260200190815260200160002060010154146134225760036000848152602001908152602001600020600001546003600060036000878152602001908152602001600020600101548152602001908152602001600020600001819055506134b0565b6003600084815260200190815260200160002060000154600760006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156135b8576003600084815260200190815260200160002060010154600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613635600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139dd565b600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600085815260200190815260200160002060000181905550600060036000858152602001908152602001600020600101819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613815578260036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156138a25782600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613930600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139c3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600081905060008112156139be57600080fd5b919050565b60008282840191508110156139d757600080fd5b92915050565b60008282840391508111156139f157600080fd5b92915050565b61012480613a058339019056fe6080604052348015600f57600080fd5b5060405161012438038061012483398181016040526020811015603157600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1663a3b22fc4336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801560c057600080fd5b505af115801560d3573d6000803e3d6000fd5b5050505050603e806100e66000396000f3fe6080604052600080fdfea265627a7a7231582011d8228e4d52a33e72559199f2a9e6502500acb18f172cf552c647d56fee044f64736f6c634300050c0032a265627a7a723158206b3b639e0afdc17dc08b18e9de88cc23f7660f74f3b7b18d0cb4f00d516c544364736f6c634300050c0032", + "nonce": "30122", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x39283d02e250354521f59445ea551727c1b2713f6e01b3b151d3168c74288463": "0x4554482d41000000000000000000000000000000000000000000000000000000", + "0x6b3785a4182d3401a98d077bae4c3646fcde354cc8e75c1f95de1faf7ff875c1": "0x000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "0xe91a1aec2b8c6704e98c22b374058d1324cfbce841779cb2a4d296942f0caf2f": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a" + } + }, + "0x6b175474e89094c44da98b954eedeac495271d0f": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637ecebe00116100b8578063a9059cbb1161007c578063a9059cbb146106b4578063b753a98c1461071a578063bb35783b14610768578063bf353dbb146107d6578063dd62ed3e1461082e578063f2d5d56b146108a657610142565b80637ecebe00146104a15780638fcbaf0c146104f957806395d89b411461059f5780639c52a7f1146106225780639dc29fac1461066657610142565b8063313ce5671161010a578063313ce567146102f25780633644e5151461031657806340c10f191461033457806354fd4d501461038257806365fae35e1461040557806370a082311461044957610142565b806306fdde0314610147578063095ea7b3146101ca57806318160ddd1461023057806323b872dd1461024e57806330adf81f146102d4575b600080fd5b61014f6108f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061092d565b604051808215151515815260200191505060405180910390f35b610238610a1f565b6040518082815260200191505060405180910390f35b6102ba6004803603606081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a25565b604051808215151515815260200191505060405180910390f35b6102dc610f3a565b6040518082815260200191505060405180910390f35b6102fa610f61565b604051808260ff1660ff16815260200191505060405180910390f35b61031e610f66565b6040518082815260200191505060405180910390f35b6103806004803603604081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6c565b005b61038a611128565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ca5780820151818401526020810190506103af565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104476004803603602081101561041b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b005b61048b6004803603602081101561045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061128f565b6040518082815260200191505060405180910390f35b6104e3600480360360208110156104b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a7565b6040518082815260200191505060405180910390f35b61059d600480360361010081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506112bf565b005b6105a76117fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e75780820151818401526020810190506105cc565b50505050905090810190601f1680156106145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106646004803603602081101561063857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611833565b005b6106b26004803603604081101561067c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611961565b005b610700600480360360408110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611df4565b604051808215151515815260200191505060405180910390f35b6107666004803603604081101561073057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e09565b005b6107d46004803603606081101561077e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e19565b005b610818600480360360208110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2a565b6040518082815260200191505060405180910390f35b6108906004803603604081101561084457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e42565b6040518082815260200191505060405180910390f35b6108f2600480360360408110156108bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e67565b005b6040518060400160405280600e81526020017f44616920537461626c65636f696e00000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60015481565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610adc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610bb457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610db25781600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b610d31600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dfb600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e77565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e87600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e91565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b81565b601281565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611020576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b611069600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e91565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110b860015482611e91565b6001819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b60006005547fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60001b8a8a8a8a8a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018215151515815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4461692f696e76616c69642d616464726573732d30000000000000000000000081525060200191505060405180910390fd5b60018185858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114e9573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f696e76616c69642d7065726d6974000000000000000000000000000081525060200191505060405180910390fd5b60008614806115a25750854211155b611614576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f7065726d69742d65787069726564000000000000000000000000000081525060200191505060405180910390fd5b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505587146116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4461692f696e76616c69642d6e6f6e636500000000000000000000000000000081525060200191505060405180910390fd5b6000856116e4576000611706565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b905080600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050505050505050565b6040518060400160405280600381526020017f444149000000000000000000000000000000000000000000000000000000000081525081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4461692f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4461692f696e73756666696369656e742d62616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611aee57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611cec5780600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4461692f696e73756666696369656e742d616c6c6f77616e636500000000000081525060200191505060405180910390fd5b611c6b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611d35600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611e77565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8460015482611e77565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611e01338484610a25565b905092915050565b611e14338383610a25565b505050565b611e24838383610a25565b50505050565b60006020528060005260406000206000915090505481565b6003602052816000526040600020602052806000526040600020600091509150505481565b611e72823383610a25565b505050565b6000828284039150811115611e8b57600080fd5b92915050565b6000828284019150811015611ea557600080fd5b9291505056fea265627a7a72315820c0ae2c29860c0a59d5586a579abbcddfe4bcef0524a87301425cbc58c3e94e3164736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000109e3b852672498b65cb8fa1", + "0x9fa7d1a90466effd74b6142b5e6b4b076451f75604d0878dc681cb2014f26d08": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xa9b43d59829a0e23e9335ae57bfab96d4c0f7c384de723cf3c0a9a8dbd6d8b7e": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038": { + "balance": "0x0", + "code": "0x60806040526004361061023b5760003560e01c806396e8d72c1161012e578063c0791710116100ab578063e685cc041161006f578063e685cc0414610c7d578063ead6472914610cc9578063eb0b9a8514610d20578063ee28457614610d63578063fba7591d14610d9f5761023b565b8063c079171014610ab2578063c56167c614610b34578063cbd4be3f14610b77578063db802a3214610bdf578063e205c10814610c475761023b565b8063b50a5869116100f2578063b50a586914610949578063ba727a9514610984578063bcd6deec146109cb578063be5e6c0314610a1a578063beabacc814610a6f5761023b565b806396e8d72c146107f75780639f6f3d5b1461083c5780639f887fde1461088b578063a033df12146108c6578063a6add011146108f45761023b565b80634592aca7116101bc5780636ab6a491116101805780636ab6a4911461068c5780636d68b70b146106d55780637b5a3b43146107245780637bc3bd531461076d5780637df2eb25146107ac5761023b565b80634592aca71461051f578063493c2049146105625780634b666199146105ab5780635f6ef447146105f45780636aa3ee11146106375761023b565b80631d10f231116102035780631d10f231146103aa57806325cf37d0146103ed5780632958f8a5146104345780633e29e5651461048557806342dd11bb146104d65761023b565b8063036a23951461024057806308f00e34146102855780630aee8dec146102ce5780631558b048146103175780631c02d8461461035e575b600080fd5b34801561024c57600080fd5b506102836004803603606081101561026357600080fd5b506001600160a01b03813581169160208101359091169060400135610dee565b005b34801561029157600080fd5b50610283600480360360808110156102a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356111aa565b3480156102da57600080fd5b50610283600480360360808110156102f157600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611319565b34801561032357600080fd5b506102836004803603608081101561033a57600080fd5b506001600160a01b03813581169160208101359160408201351690606001356113f1565b610283600480360360c081101561037457600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a0013561145e565b3480156103b657600080fd5b50610283600480360360608110156103cd57600080fd5b506001600160a01b0381358116916020810135916040909101351661175d565b3480156103f957600080fd5b506102836004803603608081101561041057600080fd5b506001600160a01b03813581169160208101359160408201351690606001356117da565b34801561044057600080fd5b50610283600480360360a081101561045757600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160809091013516611833565b34801561049157600080fd5b50610283600480360360a08110156104a857600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611906565b3480156104e257600080fd5b50610283600480360360808110156104f957600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611b06565b34801561052b57600080fd5b506102836004803603606081101561054257600080fd5b506001600160a01b03813581169160208101359160409091013516611b69565b34801561056e57600080fd5b506102836004803603608081101561058557600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611bc9565b3480156105b757600080fd5b50610283600480360360808110156105ce57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611dbc565b34801561060057600080fd5b506102836004803603606081101561061757600080fd5b506001600160a01b03813581169160208101359091169060400135612195565b34801561064357600080fd5b5061067a6004803603606081101561065a57600080fd5b506001600160a01b038135811691602081013591604090910135166121f5565b60408051918252519081900360200190f35b34801561069857600080fd5b50610283600480360360808110156106af57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561227c565b3480156106e157600080fd5b50610283600480360360a08110156106f857600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356122fc565b34801561073057600080fd5b506102836004803603608081101561074757600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612677565b34801561077957600080fd5b506102836004803603606081101561079057600080fd5b506001600160a01b038135169060208101359060400135612685565b3480156107b857600080fd5b50610283600480360360808110156107cf57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156126d3565b34801561080357600080fd5b506102836004803603608081101561081a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356128e0565b34801561084857600080fd5b50610283600480360360a081101561085f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135612936565b34801561089757600080fd5b50610283600480360360408110156108ae57600080fd5b506001600160a01b0381358116916020013516612bf7565b610283600480360360408110156108dc57600080fd5b506001600160a01b0381358116916020013516612c6b565b34801561090057600080fd5b50610283600480360360c081101561091757600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135612e50565b34801561095557600080fd5b506102836004803603604081101561096c57600080fd5b506001600160a01b038135811691602001351661311f565b34801561099057600080fd5b50610283600480360360808110156109a757600080fd5b506001600160a01b0381358116916020810135916040820135169060600135613177565b3480156109d757600080fd5b50610283600480360360a08110156109ee57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356131d0565b348015610a2657600080fd5b50610283600480360360c0811015610a3d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a00135613463565b348015610a7b57600080fd5b5061028360048036036060811015610a9257600080fd5b506001600160a01b038135811691602081013590911690604001356137f9565b348015610abe57600080fd5b50610b11600480360360e0811015610ad557600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135613859565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610b4057600080fd5b5061028360048036036060811015610b5757600080fd5b506001600160a01b038135811691602081013590911690604001356139dc565b348015610b8357600080fd5b506102836004803603610100811015610b9b57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613be2565b348015610beb57600080fd5b5061067a6004803603610100811015610c0357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e001351515613edf565b61028360048036036060811015610c5d57600080fd5b506001600160a01b03813581169160208101359091169060400135613f0a565b61067a600480360360c0811015610c9357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a001356140e0565b348015610cd557600080fd5b50610283600480360360c0811015610cec57600080fd5b506001600160a01b0381358116916020810135821691604082013591606081013591608082013515159160a0013516614107565b348015610d2c57600080fd5b5061028360048036036060811015610d4357600080fd5b506001600160a01b038135811691602081013590911690604001356141db565b61028360048036036080811015610d7957600080fd5b506001600160a01b0381358116916020810135821691604082013591606001351661423b565b348015610dab57600080fd5b50610dd260048036036020811015610dc257600080fd5b50356001600160a01b031661430d565b604080516001600160a01b039092168252519081900360200190f35b6000836001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2957600080fd5b505afa158015610e3d573d6000803e3d6000fd5b505050506040513d6020811015610e5357600080fd5b505160408051632726b07360e01b81526004810185905290519192506000916001600160a01b03871691632726b073916024808301926020929190829003018186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6020811015610ecc57600080fd5b505160408051632c2cb9fd60e01b81526004810186905290519192506000916001600160a01b03881691632c2cb9fd916024808301926020929190829003018186803b158015610f1b57600080fd5b505afa158015610f2f573d6000803e3d6000fd5b505050506040513d6020811015610f4557600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b158015610f9957600080fd5b505afa158015610fad573d6000803e3d6000fd5b505050506040513d6040811015610fc357600080fd5b506020908101516040805163040b0d8960e51b81526004810189905290519193506000926001600160a01b038b1692638161b120926024808201939291829003018186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b505190506001600160a01b0381163014806110db5750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b1580156110ab57600080fd5b505afa1580156110bf573d6000803e3d6000fd5b505050506040513d60208110156110d557600080fd5b50516001145b1561110b576110f687856110f18888898961438a565b6139dc565b61110688876000856000036128e0565b6111a0565b61111c87306110f18830898961438a565b60408051637608870360e01b8152600481018590526001600160a01b0386811660248301523060448301819052606483015260006084830181905285810360a484015292519088169263760887039260c4808201939182900301818387803b15801561118757600080fd5b505af115801561119b573d6000803e3d6000fd5b505050505b5050505050505050565b6111b6848330846113f1565b6040805163ef693bed60e01b81523060048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50505050826001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561125757600080fd5b505af115801561126b573d6000803e3d6000fd5b505050506040513d602081101561128157600080fd5b505160408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156112cd57600080fd5b505af11580156112e1573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611312573d6000803e3d6000fd5b5050505050565b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561136757600080fd5b505afa15801561137b573d6000803e3d6000fd5b505050506040513d602081101561139157600080fd5b50516001600160a01b0316146113e0576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484610dee565b50505050565b604080516313771f0760e31b8152600481018590526001600160a01b03848116602483015260448201849052915191861691639bb8f8389160648082019260009290919082900301818387803b15801561144a57600080fd5b505af11580156111a0573d6000803e3d6000fd5b6000866001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156114a457600080fd5b505afa1580156114b8573d6000803e3d6000fd5b505050506040513d60208110156114ce57600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038a16916336569e77916004808301926020929190829003018186803b15801561151657600080fd5b505afa15801561152a573d6000803e3d6000fd5b505050506040513d602081101561154057600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038b1691632c2cb9fd916024808301926020929190829003018186803b15801561158f57600080fd5b505afa1580156115a3573d6000803e3d6000fd5b505050506040513d60208110156115b957600080fd5b505190506115c78784612c6b565b6115e789866115d534614558565b6115e2868d89888c6145a3565b6128e0565b6115fb8986306115f688614720565b6117da565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b15801561164b57600080fd5b505afa15801561165f573d6000803e3d6000fd5b505050506040513d602081101561167557600080fd5b50516116ec57816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b1580156116d357600080fd5b505af11580156116e7573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561173a57600080fd5b505af115801561174e573d6000803e3d6000fd5b50505050505050505050505050565b826001600160a01b031663fcafcc6883836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b50505050505050565b60408051637cf986db60e11b8152600481018590526001600160a01b0384811660248301526044820184905291519186169163f9f30db69160648082019260009290919082900301818387803b15801561144a57600080fd5b806001600160a01b0316856001600160a01b0316638161b120856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561188157600080fd5b505afa158015611895573d6000803e3d6000fd5b505050506040513d60208110156118ab57600080fd5b50516001600160a01b0316146118fa576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b61131285858585611dbc565b611912843084846126d3565b846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561194b57600080fd5b505afa15801561195f573d6000803e3d6000fd5b505050506040513d602081101561197557600080fd5b505160408051632c2cb9fd60e01b81526004810186905290516001600160a01b039283169263760887039290891691632c2cb9fd91602480820192602092909190829003018186803b1580156119ca57600080fd5b505afa1580156119de573d6000803e3d6000fd5b505050506040513d60208110156119f457600080fd5b505160408051632726b07360e01b81526004810188905290516001600160a01b038a1691632726b073916024808301926020929190829003018186803b158015611a3d57600080fd5b505afa158015611a51573d6000803e3d6000fd5b505050506040513d6020811015611a6757600080fd5b50513080611a7d611a788b8a61473d565b614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050505050505050565b611b1b848330611b16878661473d565b6113f1565b6040805163ef693bed60e01b81523360048201526024810183905290516001600160a01b0385169163ef693bed91604480830192600092919082900301818387803b15801561144a57600080fd5b826001600160a01b0316631b0dbf7283836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000846001600160a01b031663c4552791836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611c2157600080fd5b505afa158015611c35573d6000803e3d6000fd5b505050506040513d6020811015611c4b57600080fd5b505190506001600160a01b0381161580611cdb5750816001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca357600080fd5b505afa158015611cb7573d6000803e3d6000fd5b505050506040513d6020811015611ccd57600080fd5b50516001600160a01b031614155b15611db157813b8015611d29576040805162461bcd60e51b8152602060048201526011602482015270111cdd0b5a5ccb584b58dbdb9d1c9858dd607a1b604482015290519081900360640190fd5b856001600160a01b031663f3701da2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b505050506040513d6020811015611dab57600080fd5b50519150505b61131284848361175d565b6000846001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015611df757600080fd5b505afa158015611e0b573d6000803e3d6000fd5b505050506040513d6020811015611e2157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03881691632726b073916024808301926020929190829003018186803b158015611e7057600080fd5b505afa158015611e84573d6000803e3d6000fd5b505050506040513d6020811015611e9a57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b03891691632c2cb9fd916024808301926020929190829003018186803b158015611ee957600080fd5b505afa158015611efd573d6000803e3d6000fd5b505050506040513d6020811015611f1357600080fd5b50516040805163040b0d8960e51b81526004810188905290519192506000916001600160a01b038a1691638161b120916024808301926020929190829003018186803b158015611f6257600080fd5b505afa158015611f76573d6000803e3d6000fd5b505050506040513d6020811015611f8c57600080fd5b505190506001600160a01b0381163014806120295750604080516302d75da360e51b81526001600160a01b038381166004830152602482018990523060448301529151918a1691635aebb46091606480820192602092909190829003018186803b158015611ff957600080fd5b505afa15801561200d573d6000803e3d6000fd5b505050506040513d602081101561202357600080fd5b50516001145b156120cd576120398784876139dc565b611106888760006115e288896001600160a01b0316636c25b3468a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561209a57600080fd5b505afa1580156120ae573d6000803e3d6000fd5b505050506040513d60208110156120c457600080fd5b505189896147bc565b6120d88730876139dc565b836001600160a01b031663760887038385303060006121068b676765c793fa10079d601b1b8e028c8c6147bc565b6040518763ffffffff1660e01b815260040180878152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561118757600080fd5b826001600160a01b031663b68f400483836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051636090dec560e01b8152600481018490526001600160a01b0383811660248301529151600092861691636090dec591604480830192602092919082900301818787803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d602081101561227257600080fd5b5051949350505050565b6000612288848361473d565b90506122a2858461229884614558565b60000360006128e0565b6122ae858430846113f1565b6040805163ef693bed60e01b81523360048201526024810184905290516001600160a01b0386169163ef693bed91604480830192600092919082900301818387803b158015611ae757600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d602081101561236157600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b1580156123b057600080fd5b505afa1580156123c4573d6000803e3d6000fd5b505050506040513d60208110156123da57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b15801561242957600080fd5b505afa15801561243d573d6000803e3d6000fd5b505050506040513d602081101561245357600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b1580156124a757600080fd5b505afa1580156124bb573d6000803e3d6000fd5b505050506040513d60408110156124d157600080fd5b506020015190506124e987846110f18782808861438a565b61250389876124f788614558565b600003846000036128e0565b61250f898730886113f1565b6040805163ef693bed60e01b81523060048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b15801561255d57600080fd5b505af1158015612571573d6000803e3d6000fd5b50505050876001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156125b057600080fd5b505af11580156125c4573d6000803e3d6000fd5b505050506040513d60208110156125da57600080fd5b505160408051632e1a7d4d60e01b81526004810188905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b15801561262657600080fd5b505af115801561263a573d6000803e3d6000fd5b505060405133925087156108fc02915087906000818181858888f1935050505015801561266b573d6000803e3d6000fd5b50505050505050505050565b6111aa848361229884614558565b826001600160a01b031663e50322a283836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b801561288057836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561271457600080fd5b505af1158015612728573d6000803e3d6000fd5b505050506040513d602081101561273e57600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b15801561279657600080fd5b505af11580156127aa573d6000803e3d6000fd5b50505050836001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156127e957600080fd5b505af11580156127fd573d6000803e3d6000fd5b505050506040513d602081101561281357600080fd5b50516040805163095ea7b360e01b81526001600160a01b038781166004830152602482018690529151919092169163095ea7b391604480830192600092919082900301818387803b15801561286757600080fd5b505af115801561287b573d6000803e3d6000fd5b505050505b836001600160a01b0316633b4da69f84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561144a57600080fd5b836001600160a01b03166345e6bdcd8484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561144a57600080fd5b6000856001600160a01b0316632726b073846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561297c57600080fd5b505afa158015612990573d6000803e3d6000fd5b505050506040513d60208110156129a657600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038916916336569e77916004808301926020929190829003018186803b1580156129ee57600080fd5b505afa158015612a02573d6000803e3d6000fd5b505050506040513d6020811015612a1857600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b158015612a6757600080fd5b505afa158015612a7b573d6000803e3d6000fd5b505050506040513d6020811015612a9157600080fd5b50519050612aa9888660006115e2868c89888c6145a3565b612ab88886306115f688614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038881166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015612b0857600080fd5b505afa158015612b1c573d6000803e3d6000fd5b505050506040513d6020811015612b3257600080fd5b5051612ba957816001600160a01b031663a3b22fc4876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612b9057600080fd5b505af1158015612ba4573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663dc4d20fa826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b505af1158015612c63573d6000803e3d6000fd5b505050505050565b816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612ca657600080fd5b505af1158015612cba573d6000803e3d6000fd5b505050506040513d6020811015612cd057600080fd5b505160408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b158015612d1657600080fd5b505af1158015612d2a573d6000803e3d6000fd5b5050505050816001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b158015612d6a57600080fd5b505af1158015612d7e573d6000803e3d6000fd5b505050506040513d6020811015612d9457600080fd5b50516040805163095ea7b360e01b81526001600160a01b0385811660048301523460248301529151919092169163095ea7b391604480830192600092919082900301818387803b158015612de757600080fd5b505af1158015612dfb573d6000803e3d6000fd5b505060408051633b4da69f60e01b81526001600160a01b03858116600483015234602483015291519186169350633b4da69f925060448082019260009290919082900301818387803b158015612c4f57600080fd5b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612e9657600080fd5b505afa158015612eaa573d6000803e3d6000fd5b505050506040513d6020811015612ec057600080fd5b50519050612ecf8582846139dc565b6000612edb878561473d565b90506130c58886612eeb84614558565b6000036115e28c6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f2a57600080fd5b505afa158015612f3e573d6000803e3d6000fd5b505050506040513d6020811015612f5457600080fd5b81019080805190602001909291905050508d6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9e57600080fd5b505afa158015612fb2573d6000803e3d6000fd5b505050506040513d6020811015612fc857600080fd5b505160408051633612d9a360e11b81526001600160a01b038b8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561301457600080fd5b505afa158015613028573d6000803e3d6000fd5b505050506040513d602081101561303e57600080fd5b8101908080519060200190929190505050888f6001600160a01b0316632c2cb9fd8e6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b505afa1580156130a8573d6000803e3d6000fd5b505050506040513d60208110156130be57600080fd5b50516147bc565b6130d1888630846113f1565b6040805163ef693bed60e01b81523360048201526024810186905290516001600160a01b0389169163ef693bed91604480830192600092919082900301818387803b15801561118757600080fd5b816001600160a01b031663a3b22fc4826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015612c4f57600080fd5b604080516305b1fdb160e11b8152600481018590526001600160a01b03848116602483015260448201849052915191861691630b63fb629160648082019260009290919082900301818387803b15801561144a57600080fd5b6000856001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561320b57600080fd5b505afa15801561321f573d6000803e3d6000fd5b505050506040513d602081101561323557600080fd5b505160408051632726b07360e01b81526004810186905290519192506000916001600160a01b03891691632726b073916024808301926020929190829003018186803b15801561328457600080fd5b505afa158015613298573d6000803e3d6000fd5b505050506040513d60208110156132ae57600080fd5b505160408051632c2cb9fd60e01b81526004810187905290519192506000916001600160a01b038a1691632c2cb9fd916024808301926020929190829003018186803b1580156132fd57600080fd5b505afa158015613311573d6000803e3d6000fd5b505050506040513d602081101561332757600080fd5b5051604080516309092f9760e21b8152600481018390526001600160a01b038581166024830152825193945060009390871692632424be5c9260448082019391829003018186803b15801561337b57600080fd5b505afa15801561338f573d6000803e3d6000fd5b505050506040513d60408110156133a557600080fd5b506020015190506133bd87846110f18782808861438a565b60006133c9898761473d565b90506133e58a886133d984614558565b600003856000036128e0565b6133f18a8830846113f1565b6040805163ef693bed60e01b81523360048201526024810188905290516001600160a01b038b169163ef693bed91604480830192600092919082900301818387803b15801561343f57600080fd5b505af1158015613453573d6000803e3d6000fd5b5050505050505050505050505050565b6000866001600160a01b0316632726b073856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156134a957600080fd5b505afa1580156134bd573d6000803e3d6000fd5b505050506040513d60208110156134d357600080fd5b505190506134e28582846139dc565b61369187856134f086614558565b6000036115e28b6001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b15801561352f57600080fd5b505afa158015613543573d6000803e3d6000fd5b505050506040513d602081101561355957600080fd5b5051604080516336569e7760e01b815290516001600160a01b038f16916336569e77916004808301926020929190829003018186803b15801561359b57600080fd5b505afa1580156135af573d6000803e3d6000fd5b505050506040513d60208110156135c557600080fd5b505160408051633612d9a360e11b81526001600160a01b038a8116600483015291519190921691636c25b346916024808301926020929190829003018186803b15801561361157600080fd5b505afa158015613625573d6000803e3d6000fd5b505050506040513d602081101561363b57600080fd5b8101908080519060200190929190505050878e6001600160a01b0316632c2cb9fd8d6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561309457600080fd5b61369d878530866113f1565b6040805163ef693bed60e01b81523060048201526024810185905290516001600160a01b0388169163ef693bed91604480830192600092919082900301818387803b1580156136eb57600080fd5b505af11580156136ff573d6000803e3d6000fd5b50505050856001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050506040513d602081101561376857600080fd5b505160408051632e1a7d4d60e01b81526004810186905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156137b457600080fd5b505af11580156137c8573d6000803e3d6000fd5b505060405133925085156108fc02915085906000818181858888f193505050501580156111a0573d6000803e3d6000fd5b826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b60408051638c4c280160e01b8152306004820152905160009182916001600160a01b03891691638c4c2801916024808301926020929190829003018186803b1580156138a457600080fd5b505afa1580156138b8573d6000803e3d6000fd5b505050506040513d60208110156138ce57600080fd5b505191506001600160a01b0382166138ec576138e98761430d565b91505b866001600160a01b0316637bd2bea76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561392757600080fd5b505af115801561393b573d6000803e3d6000fd5b505050506040513d602081101561395157600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018890529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156139a557600080fd5b505af11580156139b9573d6000803e3d6000fd5b505050506139ce898989898989896000613edf565b905097509795505050505050565b826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613a1757600080fd5b505af1158015613a2b573d6000803e3d6000fd5b505050506040513d6020811015613a4157600080fd5b5051604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd9160648082019260009290919082900301818387803b158015613a9957600080fd5b505af1158015613aad573d6000803e3d6000fd5b50505050826001600160a01b031663f4b9fa756040518163ffffffff1660e01b8152600401602060405180830381600087803b158015613aec57600080fd5b505af1158015613b00573d6000803e3d6000fd5b505050506040513d6020811015613b1657600080fd5b50516040805163095ea7b360e01b81526001600160a01b038681166004830152602482018590529151919092169163095ea7b391604480830192600092919082900301818387803b158015613b6a57600080fd5b505af1158015613b7e573d6000803e3d6000fd5b50505050826001600160a01b0316633b4da69f83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b6000886001600160a01b0316632726b073866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d6020811015613c5257600080fd5b5051604080516336569e7760e01b815290519192506000916001600160a01b038c16916336569e77916004808301926020929190829003018186803b158015613c9a57600080fd5b505afa158015613cae573d6000803e3d6000fd5b505050506040513d6020811015613cc457600080fd5b505160408051632c2cb9fd60e01b81526004810189905290519192506000916001600160a01b038d1691632c2cb9fd916024808301926020929190829003018186803b158015613d1357600080fd5b505afa158015613d27573d6000803e3d6000fd5b505050506040513d6020811015613d3d57600080fd5b50519050613d4d898488876126d3565b613d6c8b88613d5f611a788d8b61473d565b6115e2868f89888d6145a3565b613d7b8b88306115f689614720565b60408051634538c4eb60e01b81523060048201526001600160a01b038a81166024830152915191841691634538c4eb91604480820192602092909190829003018186803b158015613dcb57600080fd5b505afa158015613ddf573d6000803e3d6000fd5b505050506040513d6020811015613df557600080fd5b5051613e6c57816001600160a01b031663a3b22fc4896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015613e5357600080fd5b505af1158015613e67573d6000803e3d6000fd5b505050505b6040805163ef693bed60e01b81523360048201526024810187905290516001600160a01b038a169163ef693bed91604480830192600092919082900301818387803b158015613eba57600080fd5b505af1158015613ece573d6000803e3d6000fd5b505050505050505050505050505050565b6000613eec8986306121f5565b9050613efe8989898985898989613be2565b98975050505050505050565b613f148230612c6b565b826001600160a01b03166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015613f4d57600080fd5b505afa158015613f61573d6000803e3d6000fd5b505050506040513d6020811015613f7757600080fd5b505160408051632c2cb9fd60e01b81526004810184905290516001600160a01b039283169263760887039290871691632c2cb9fd91602480820192602092909190829003018186803b158015613fcc57600080fd5b505afa158015613fe0573d6000803e3d6000fd5b505050506040513d6020811015613ff657600080fd5b505160408051632726b07360e01b81526004810186905290516001600160a01b03881691632726b073916024808301926020929190829003018186803b15801561403f57600080fd5b505afa158015614053573d6000803e3d6000fd5b505050506040513d602081101561406957600080fd5b5051308061407634614558565b604080516001600160e01b031960e089901b16815260048101969096526001600160a01b0394851660248701529284166044860152921660648401526084830191909152600060a48301819052905160c48084019382900301818387803b1580156117bd57600080fd5b60006140ed8784306121f5565b90506140fd87878787858761145e565b9695505050505050565b806001600160a01b0316866001600160a01b0316638161b120866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561415557600080fd5b505afa158015614169573d6000803e3d6000fd5b505050506040513d602081101561417f57600080fd5b50516001600160a01b0316146141ce576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b612c638686868686611906565b826001600160a01b0316637e348b7d83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117bd57600080fd5b806001600160a01b0316846001600160a01b0316638161b120846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561428957600080fd5b505afa15801561429d573d6000803e3d6000fd5b505050506040513d60208110156142b357600080fd5b50516001600160a01b031614614302576040805162461bcd60e51b815260206004820152600f60248201526e0deeedccae45adad2e6e6dac2e8c6d608b1b604482015290519081900360640190fd5b6113eb848484613f0a565b60408051631060930d60e01b815230600482015290516000916001600160a01b03841691631060930d9160248082019260209290919082900301818787803b15801561435857600080fd5b505af115801561436c573d6000803e3d6000fd5b505050506040513d602081101561438257600080fd5b505192915050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b1580156143d157600080fd5b505afa1580156143e5573d6000803e3d6000fd5b505050506040513d60a08110156143fb57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561445257600080fd5b505afa158015614466573d6000803e3d6000fd5b505050506040513d604081101561447c57600080fd5b5060209081015160408051633612d9a360e11b81526001600160a01b038a811660048301529151929450600093918b1692636c25b34692602480840193919291829003018186803b1580156144d057600080fd5b505afa1580156144e4573d6000803e3d6000fd5b505050506040513d60208110156144fa57600080fd5b50519050600061451361450d84866148ec565b83614947565b9050676765c793fa10079d601b1b810494508061453b86676765c793fa10079d601b1b6148ec565b10614546578461454b565b846001015b9998505050505050505050565b80600081121561459e576040805162461bcd60e51b815260206004820152600c60248201526b696e742d6f766572666c6f7760a01b604482015290519081900360640190fd5b919050565b600080856001600160a01b03166344e2a5a8856040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156145ec57600080fd5b505af1158015614600573d6000803e3d6000fd5b505050506040513d602081101561461657600080fd5b505160408051633612d9a360e11b81526001600160a01b0388811660048301529151929350600092918a1691636c25b34691602480820192602092909190829003018186803b15801561466857600080fd5b505afa15801561467c573d6000803e3d6000fd5b505050506040513d602081101561469257600080fd5b505190506146ab84676765c793fa10079d601b1b6148ec565b811015614715576146e1826146d46146ce87676765c793fa10079d601b1b6148ec565b84614947565b816146db57fe5b04614558565b92506146f884676765c793fa10079d601b1b6148ec565b61470284846148ec565b1061470d5782614712565b826001015b92505b505095945050505050565b600061473782676765c793fa10079d601b1b6148ec565b92915050565b60006147b582846001600160a01b031663b3bcfa826040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561477e57600080fd5b505af1158015614792573d6000803e3d6000fd5b505050506040513d60208110156147a857600080fd5b5051601203600a0a6148ec565b9392505050565b600080856001600160a01b031663d9638d36846040518263ffffffff1660e01b81526004018082815260200191505060a06040518083038186803b15801561480357600080fd5b505afa158015614817573d6000803e3d6000fd5b505050506040513d60a081101561482d57600080fd5b5060200151604080516309092f9760e21b8152600481018690526001600160a01b0387811660248301528251939450600093908a1692632424be5c9260448082019391829003018186803b15801561488457600080fd5b505afa158015614898573d6000803e3d6000fd5b505050506040513d60408110156148ae57600080fd5b506020015190506148c18287816146db57fe5b9250808311156148dc576148d481614558565b6000036148e1565b826000035b979650505050505050565b60008115806149075750508082028282828161490457fe5b04145b614737576040805162461bcd60e51b815260206004820152600c60248201526b6d756c2d6f766572666c6f7760a01b604482015290519081900360640190fd5b80820382811115614737576040805162461bcd60e51b815260206004820152600c60248201526b7375622d6f766572666c6f7760a01b604482015290519081900360640190fdfea265627a7a7231582012dcfe4bf58005e81f7eafd7f0b120bebf5a4e6adcf218708bad72768b5c6e4e64736f6c634300050c0032", + "nonce": "1" + }, + "0x9759a6ac90977b93b58547b4a71c78317f391a28": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063957aa58c11610066578063957aa58c1461017e5780639c52a7f11461019c578063bf353dbb146101e0578063ef693bed14610238578063f4b9fa751461028657610093565b806336569e77146100985780633b4da69f146100e257806365fae35e146101305780636924500914610174575b600080fd5b6100a06102d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61012e600480360360408110156100f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506102f6565b005b6101726004803603602081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f8565b005b61017c610626565b005b610186610717565b6040518082815260200191505060405180910390f35b6101de600480360360208110156101b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061071d565b005b610222600480360360208110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084b565b6040518082815260200191505060405180910390f35b6102846004803603604081101561024e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610863565b005b61028e610add565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b308461034c6b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156104a957600080fd5b505af11580156104bd573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146105ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006003819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b60035481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4461694a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b6001600354146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4461694a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb35783b33306109316b033b2e3c9fd0803ce800000086610b03565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156109cd57600080fd5b505af11580156109e1573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610a8e57600080fd5b505af1158015610aa2573d6000803e3d6000fd5b505050505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821480610b205750828283850292508281610b1d57fe5b04145b610b2957600080fd5b9291505056fea265627a7a7231582073556d6c1e4fe23e478f0dc378056d7722545a3e43c977fa340ddc81d62345c864736f6c634300050c0032", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6": { + "balance": "0x0", + "code": "0x60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461008f5780631cff79cd146100b05780631f6a1eb91461011c57806360c7d295146101c95780637a9e5e4b146101fa5780638da5cb5b1461021b578063948f507614610230578063bf7e214f14610265575b005b34801561009b57600080fd5b5061008d600160a060020a036004351661027a565b60408051602060046024803582810135601f810185900485028601850190965285855261010a958335600160a060020a03169536956044949193909101919081908401838280828437509497506102f89650505050505050565b60408051918252519081900360200190f35b6040805160206004803580820135601f81018490048402850184019095528484526101a694369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103be9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101d557600080fd5b506101de6105ce565b60408051600160a060020a039092168252519081900360200190f35b34801561020657600080fd5b5061008d600160a060020a03600435166105dd565b34801561022757600080fd5b506101de610657565b34801561023c57600080fd5b50610251600160a060020a0360043516610666565b604080519115158252519081900360200190f35b34801561027157600080fd5b506101de61072d565b61029033600035600160e060020a03191661073c565b151561029b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b600061031033600035600160e060020a03191661073c565b151561031b57600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a038516151561038a57600080fd5b60206000855160208701886113885a03f460005193508015600181146103af576103b4565b600080fd5b5050505092915050565b6002546040517f8bf4515c0000000000000000000000000000000000000000000000000000000081526020600482018181528551602484015285516000948594600160a060020a0390911693638bf4515c93899390928392604490910191908501908083838b5b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561048957600080fd5b505af115801561049d573d6000803e3d6000fd5b505050506040513d60208110156104b357600080fd5b50519150600160a060020a03821615156105bb576002546040517f7ed0c3b2000000000000000000000000000000000000000000000000000000008152602060048201818152875160248401528751600160a060020a0390941693637ed0c3b293899383926044909201919085019080838360005b83811015610540578181015183820152602001610528565b50505050905090810190601f16801561056d5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505191505b6105c582846102f8565b90509250929050565b600254600160a060020a031681565b6105f333600035600160e060020a03191661073c565b15156105fe57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b600061067e33600035600160e060020a03191661073c565b151561068957600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a03841615156106f857600080fd5b60028054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff19909116179055600192505050919050565b600054600160a060020a031681565b600030600160a060020a031683600160a060020a031614156107605750600161084a565b600154600160a060020a038481169116141561077e5750600161084a565b600054600160a060020a031615156107985750600061084a565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301523081166024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505190505b929150505600a165627a7a72305820e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e10029", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be" + } + }, + "0xbaf6dc2e647aeb6f510f9e318856a1bcd66c5e19": { + "balance": "0x48b70935a04104bc", + "nonce": "11402" + }, + "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": { + "balance": "0x33cb67fca946d8da4bc1d", + "code": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029", + "nonce": "1", + "storage": { + "0x1442c20decac5e9285a003f6453d0611949f802121acdd6ff5a704143dd017db": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8629dae9a04a429781ee2d74cc5f87aff82085ecefb8c4f0101ac2b519e300e1": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc92c3a279814545c4590501add24843ce5413758f3869cb4885635cbbdbbaa51": "0x0000000000000000000000000000000000000000000075b6c54d53d2a2d6d3a7" + } + }, + "0xd9db270c1b5e3bd161e8c8503c55ceabee709552": { + "balance": "0x71afd498d0014", + "code": "0x6080604052600436106101dc5760003560e01c8063affed0e011610102578063e19a9dd911610095578063f08a032311610064578063f08a032314611647578063f698da2514611698578063f8dc5dd9146116c3578063ffa1ad741461173e57610231565b8063e19a9dd91461139b578063e318b52b146113ec578063e75235b81461147d578063e86637db146114a857610231565b8063cc2f8452116100d1578063cc2f8452146110e8578063d4d9bdcd146111b5578063d8d11f78146111f0578063e009cfde1461132a57610231565b8063affed0e014610d94578063b4faba0914610dbf578063b63e800d14610ea7578063c4ca3a9c1461101757610231565b80635624b25b1161017a5780636a761202116101495780636a761202146109945780637d83297414610b50578063934f3a1114610bbf578063a0e67e2b14610d2857610231565b80635624b25b146107fb5780635ae6bd37146108b9578063610b592514610908578063694e80c31461095957610231565b80632f54bf6e116101b65780632f54bf6e146104d35780633408e4701461053a578063468721a7146105655780635229073f1461067a57610231565b80630d582f131461029e57806312fb68e0146102f95780632d9ad53d1461046c57610231565b36610231573373ffffffffffffffffffffffffffffffffffffffff167f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d346040518082815260200191505060405180910390a2005b34801561023d57600080fd5b5060007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b905080548061027257600080f35b36600080373360601b365260008060143601600080855af13d6000803e80610299573d6000fd5b3d6000f35b3480156102aa57600080fd5b506102f7600480360360408110156102c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ce565b005b34801561030557600080fd5b5061046a6004803603608081101561031c57600080fd5b81019080803590602001909291908035906020019064010000000081111561034357600080fd5b82018360208201111561035557600080fd5b8035906020019184600183028401116401000000008311171561037757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103da57600080fd5b8201836020820111156103ec57600080fd5b8035906020019184600183028401116401000000008311171561040e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611bbe565b005b34801561047857600080fd5b506104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612440565b60405180821515815260200191505060405180910390f35b3480156104df57600080fd5b50610522600480360360208110156104f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612512565b60405180821515815260200191505060405180910390f35b34801561054657600080fd5b5061054f6125e4565b6040518082815260200191505060405180910390f35b34801561057157600080fd5b506106626004803603608081101561058857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105cf57600080fd5b8201836020820111156105e157600080fd5b8035906020019184600183028401116401000000008311171561060357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506125f1565b60405180821515815260200191505060405180910390f35b34801561068657600080fd5b506107776004803603608081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106e457600080fd5b8201836020820111156106f657600080fd5b8035906020019184600183028401116401000000008311171561071857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506127d7565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561080757600080fd5b5061083e6004803603604081101561081e57600080fd5b81019080803590602001909291908035906020019092919050505061280d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087e578082015181840152602081019050610863565b50505050905090810190601f1680156108ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c557600080fd5b506108f2600480360360208110156108dc57600080fd5b8101908080359060200190929190505050612894565b6040518082815260200191505060405180910390f35b34801561091457600080fd5b506109576004803603602081101561092b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b005b34801561096557600080fd5b506109926004803603602081101561097c57600080fd5b8101908080359060200190929190505050612c3e565b005b610b3860048036036101408110156109ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156109f257600080fd5b820183602082011115610a0457600080fd5b80359060200191846001830284011164010000000083111715610a2657600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610ab257600080fd5b820183602082011115610ac457600080fd5b80359060200191846001830284011164010000000083111715610ae657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612d78565b60405180821515815260200191505060405180910390f35b348015610b5c57600080fd5b50610ba960048036036040811015610b7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132b5565b6040518082815260200191505060405180910390f35b348015610bcb57600080fd5b50610d2660048036036060811015610be257600080fd5b810190808035906020019092919080359060200190640100000000811115610c0957600080fd5b820183602082011115610c1b57600080fd5b80359060200191846001830284011164010000000083111715610c3d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610ca057600080fd5b820183602082011115610cb257600080fd5b80359060200191846001830284011164010000000083111715610cd457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506132da565b005b348015610d3457600080fd5b50610d3d613369565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d80578082015181840152602081019050610d65565b505050509050019250505060405180910390f35b348015610da057600080fd5b50610da9613512565b6040518082815260200191505060405180910390f35b348015610dcb57600080fd5b50610ea560048036036040811015610de257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610e1f57600080fd5b820183602082011115610e3157600080fd5b80359060200191846001830284011164010000000083111715610e5357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613518565b005b348015610eb357600080fd5b506110156004803603610100811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846020830284011164010000000083111715610f1c57600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610f6757600080fd5b820183602082011115610f7957600080fd5b80359060200191846001830284011164010000000083111715610f9b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061353a565b005b34801561102357600080fd5b506110d26004803603608081101561103a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561108157600080fd5b82018360208201111561109357600080fd5b803590602001918460018302840111640100000000831117156110b557600080fd5b9091929391929390803560ff1690602001909291905050506136f8565b6040518082815260200191505060405180910390f35b3480156110f457600080fd5b506111416004803603604081101561110b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613820565b60405180806020018373ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019060200280838360005b838110156111a0578082015181840152602081019050611185565b50505050905001935050505060405180910390f35b3480156111c157600080fd5b506111ee600480360360208110156111d857600080fd5b8101908080359060200190929190505050613a12565b005b3480156111fc57600080fd5b50611314600480360361014081101561121457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561125b57600080fd5b82018360208201111561126d57600080fd5b8035906020019184600183028401116401000000008311171561128f57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb1565b6040518082815260200191505060405180910390f35b34801561133657600080fd5b506113996004803603604081101561134d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bde565b005b3480156113a757600080fd5b506113ea600480360360208110156113be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f6f565b005b3480156113f857600080fd5b5061147b6004803603606081101561140f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ff3565b005b34801561148957600080fd5b50611492614665565b6040518082815260200191505060405180910390f35b3480156114b457600080fd5b506115cc60048036036101408110156114cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561151357600080fd5b82018360208201111561152557600080fd5b8035906020019184600183028401116401000000008311171561154757600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061466f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561160c5780820151818401526020810190506115f1565b50505050905090810190601f1680156116395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561165357600080fd5b506116966004803603602081101561166a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614817565b005b3480156116a457600080fd5b506116ad614878565b6040518082815260200191505060405180910390f35b3480156116cf57600080fd5b5061173c600480360360608110156116e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506148f6565b005b34801561174a57600080fd5b50611753614d29565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611793578082015181840152602081019050611778565b50505050905090810190601f1680156117c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6117d6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118405750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561187857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414611bba57611bb981612c3e565b5b5050565b611bd2604182614e0590919063ffffffff16565b82511015611c48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808060008060005b8681101561243457611c648882614e3f565b80945081955082965050505060008460ff16141561206d578260001c9450611c96604188614e0590919063ffffffff16565b8260001c1015611d0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8751611d2760208460001c614e6e90919063ffffffff16565b1115611d9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006020838a01015190508851611dd182611dc360208760001c614e6e90919063ffffffff16565b614e6e90919063ffffffff16565b1115611e45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ee7578082015181840152602081019050611ecc565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611f4d578082015181840152602081019050611f32565b50505050905090810190601f168015611f7a5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b158015611f9957600080fd5b505afa158015611fad573d6000803e3d6000fd5b505050506040513d6020811015611fc357600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506122b2565b60018460ff161415612181578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061210a57506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b61217c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6122b1565b601e8460ff1611156122495760018a60405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012060048603858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612238573d6000803e3d6000fd5b5050506020604051035194506122b0565b60018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156122a3573d6000803e3d6000fd5b5050506020604051035194505b5b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161180156123795750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156123b25750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b612424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330323600000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8495508080600101915050611c52565b50505050505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff16600173ffffffffffffffffffffffffffffffffffffffff161415801561250b5750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156125dd5750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000804690508091505090565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126bc5750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61272e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61273b858585855a614e8d565b9050801561278b573373ffffffffffffffffffffffffffffffffffffffff167f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb860405160405180910390a26127cf565b3373ffffffffffffffffffffffffffffffffffffffff167facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37560405160405180910390a25b949350505050565b600060606127e7868686866125f1565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006020830267ffffffffffffffff8111801561282b57600080fd5b506040519080825280601f01601f19166020018201604052801561285e5781602001600182028036833780820191505090505b50905060005b8381101561288957808501548060208302602085010152508080600101915050612864565b508091505092915050565b60076020528060005260406000206000915090505481565b6128b4614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561291e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b612990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612c46614d62565b600354811115612cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811015612d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b6000806000612d928e8e8e8e8e8e8e8e8e8e60055461466f565b905060056000815480929190600101919050555080805190602001209150612dbb8282866132da565b506000612dc6614ed9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612fac578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b8152600401808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c8152602001806020018a6001811115612e6957fe5b81526020018981526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018473ffffffffffffffffffffffffffffffffffffffff16815260200183810383528d8d82818152602001925080828437600081840152601f19601f820116905080830192505050838103825285818151815260200191508051906020019080838360005b83811015612f3b578082015181840152602081019050612f20565b50505050905090810190601f168015612f685780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050600060405180830381600087803b158015612f9357600080fd5b505af1158015612fa7573d6000803e3d6000fd5b505050505b6101f4612fd36109c48b01603f60408d0281612fc457fe5b04614f0a90919063ffffffff16565b015a1015613049576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60005a90506130b28f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008d146130a7578e6130ad565b6109c45a035b614e8d565b93506130c75a82614f2490919063ffffffff16565b905083806130d6575060008a14155b806130e2575060008814155b613154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008089111561316e5761316b828b8b8b8b614f44565b90505b84156131b8577f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e8482604051808381526020018281526020019250505060405180910390a16131f8565b7f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d238482604051808381526020018281526020019250505060405180910390a15b5050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146132a4578073ffffffffffffffffffffffffffffffffffffffff16639327136883856040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561328b57600080fd5b505af115801561329f573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b6000600454905060008111613357576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61336384848484611bbe565b50505050565b6060600060035467ffffffffffffffff8111801561338657600080fd5b506040519080825280602002602001820160405280156133b55781602001602082028036833780820191505090505b50905060008060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613509578083838151811061346057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061341f565b82935050505090565b60055481565b600080825160208401855af4806000523d6020523d600060403e60403d016000fd5b6135858a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508961514a565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135c3576135c28461564a565b5b6136118787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050615679565b600082111561362b5761362982600060018685614f44565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b8960405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281038252878782818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a250505050505050505050565b6000805a905061374f878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050865a614e8d565b61375857600080fd5b60005a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137e55780820151818401526020810190506137ca565b50505050905090810190601f1680156138125780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b606060008267ffffffffffffffff8111801561383b57600080fd5b5060405190808252806020026020018201604052801561386a5781602001602082028036833780820191505090505b509150600080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561393d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561394857508482105b15613a03578084838151811061395a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506138d3565b80925081845250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16817ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c60405160405180910390a350565b6000613bc68c8c8c8c8c8c8c8c8c8c8c61466f565b8051906020012090509b9a5050505050505050505050565b613be6614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015613c505750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b613cc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613dc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613f77614d62565b60007f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b90508181557f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa282604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b613ffb614d62565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156140655750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561409d57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61410f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561427a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6142ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146143ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405180838380828437808301925050509250505060405180910390208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a815260200189815260200188600181111561470057fe5b81526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b61478c614878565b8360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509b9a5050505050505050505050565b61481f614d62565b6148288161564a565b7f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b081604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921860001b6148a66125e4565b30604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405160208183030381529060405280519060200120905090565b6148fe614d62565b806001600354031015614979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156149e35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614a55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614b55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414614d2457614d2381612c3e565b5b505050565b6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614e03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330333100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b565b600080831415614e185760009050614e39565b6000828402905082848281614e2957fe5b0414614e3457600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614e8357600080fd5b8091505092915050565b6000600180811115614e9b57fe5b836001811115614ea757fe5b1415614ec0576000808551602087018986f49050614ed0565b600080855160208701888a87f190505b95945050505050565b6000807f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c860001b9050805491505090565b600081831015614f1a5781614f1c565b825b905092915050565b600082821115614f3357600080fd5b600082840390508091505092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614f815782614f83565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561509b57614fed3a8610614fca573a614fcc565b855b614fdf888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050615096576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b615140565b6150c0856150b2888a614e6e90919063ffffffff16565b614e0590919063ffffffff16565b91506150cd8482846158b4565b61513f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330313200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5095945050505050565b6000600454146151c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8151811115615239576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018110156152b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006001905060005b83518110156155b65760008482815181106152d057fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156153445750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561537c57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156153b457508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b615426576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303300000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475332303400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092505080806001019150506152b9565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b60007f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d560001b90508181555050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461577b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475331303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146158b05761583d8260008360015a614e8d565b6158af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f475330303000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5050565b60008063a9059cbb8484604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050602060008251602084016000896127105a03f13d6000811461595b5760208114615963576000935061596e565b81935061596e565b600051158215171593505b505050939250505056fea26469706673582212203874bcf92e1722cc7bfa0cef1a0985cf0dc3485ba0663db3747ccdf1605df53464736f6c63430007060033", + "nonce": "1" + }, + "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be": { + "balance": "0x13cc5cb7f866bf2a1", + "code": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033", + "nonce": "1", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000023", + "0x311d6f25482807f0b0d46f6fafeb0c07abb26f38af26360b2d841fb5e32d1111": "0x0000000000000000000000002900ac563eab8d2d9da21ceb07a66e3bbe2fbe26", + "0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x58e147b099549d92d3f037e88e03bccd6809c3d28a894f441bc7a049e077b95c": "0x000000000000000000000000bd5b82b95d7c25f5f7767ecbdd5d3ea8fb63c09c", + "0x7feb34d70f880434f7b1e4bb8b4f0e58735b8893360e1666e7cebfad5910ba77": "0x0000000000000000000000004ea32106019d314cd50cd6121d616e511ada7782" + } + } + }, + "config": { + "chainName": "mainnet", + "chainId": 1, + "consensus": "ethash", + "homesteadBlock": 1150000, + "daoForkBlock": 1920000, + "eip150Block": 2463000, + "eip155Block": 2675000, + "byzantiumBlock": 4370000, + "constantinopleBlock": 7280000, + "petersburgBlock": 7280000, + "istanbulBlock": 9069000, + "muirGlacierBlock": 9200000, + "berlinBlock": 12244000, + "londonBlock": 12965000, + "arrowGlacierBlock": 13773000, + "grayGlacierBlock": 15050000, + "terminalTotalDifficulty": null, + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 1681338455, + "cancunTime": 1710338135, + "ethash": {}, + "noPruneContracts": { + "0x00000000219ab540356cbb839cbe05303d7705fa": true + } + }, + "gasLimit": "30000000", + "difficulty": "0" + }, + "context": { + "number": "16494085", + "hash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "difficulty": "0", + "timestamp": "1674773399", + "gasLimit": "30000000", + "baseFeePerGas": "26264939160", + "miner": "0xBaF6dC2E647aeb6F510f9e318856A1BCd66C5e19", + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277 + }, + "input": "0x02f90433018229ee8459682f008507735940008306a17894ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be80b903c46a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000c0809fd599bfb27f78926f546e1ec2bbb39e7b91e5bdba54be97a16212045210ba7da06354952e8b7662cdc82ce4b6b4a5ffab9fbb58e010d6322a3b7b721d23952f66", + "tracerConfig": { + "includePrecompiles": true + }, + "result": [ + { + "action": { + "from": "0x519e19eac9ead404343c68224dd2a22c5c25f992", + "callType": "call", + "gas": "0x631f0", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "to": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5e43e", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 1, + "traceAddress": [], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "callType": "delegatecall", + "gas": "0x60615", + "input": "0x6a761202000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000000000000000000000000000001314fb37062980000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000001441cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3000000000000000000000000519e19eac9ead404343c68224dd2a22c5c25f99200000000000000000000000000000000000000000000000000000000000000000107d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba1cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe1c0000000000000000000000000000000000000000000000000000000000", + "to": "0xd9db270c1b5e3bd161e8c8503c55ceabee709552", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5d0b0", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 3, + "traceAddress": [ + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "callType": "staticcall", + "gas": "0x5bb54", + "input": "0x92f73a75745a1d014b090d5f5fa26e968a31b08fa39af96fbda4b8b54a161749000000000000000000000000000000000000000000000000000000000000001c07d0228dfebee38c2acf8026f994ccd076fed6d87375b6b9707735d5464656a26b25cc80ed5b249dd02a00a86482b72d2e6d40a1a62c3e4696740fa3b6c7e0ba", + "to": "0x0000000000000000000000000000000000000001", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xbb8", + "output": "0x000000000000000000000000b66a81ed60cc6faf7f81d5add216782dac66af6d" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "callType": "staticcall", + "gas": "0x5a43c", + "input": "0x92f73a75745a1d014b090d5f5fa26e968a31b08fa39af96fbda4b8b54a161749000000000000000000000000000000000000000000000000000000000000001cd306bfa9f8996baee8895e67cebe4e2afbf88ccb48f76013d8d0ee27f6deb32b5e677aae6d6b47c0ad34142d21c8bff61368187965056a01685018f51e43bfbe", + "to": "0x0000000000000000000000000000000000000001", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xbb8", + "output": "0x000000000000000000000000bd5b82b95d7c25f5f7767ecbdd5d3ea8fb63c09c" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xef54b1ec1bb9c0f653db07a6f6409bb3901ac8be", + "callType": "call", + "gas": "0x560b3", + "input": "0x1cff79cd00000000000000000000000082ecd135dce65fbc6dbdd0e4237e0af93ffd5038000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c41c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000000000000000", + "to": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "value": "0x1314fb37062980000" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x53a37", + "output": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "subtraces": 1, + "traceAddress": [ + 0, + 2 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "delegatecall", + "gas": "0x51f84", + "input": "0x1c02d8460000000000000000000000005ef30b9986345249bc32d8928b7ee64de9435e3900000000000000000000000019c0976f590d67707e62397c87829d896dc0f1f10000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a0000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000000000000000000000000000000000000000000758700000000000000000000000000000000000000000000021e19e0c9bab2400000", + "to": "0x82ecd135dce65fbc6dbdd0e4237e0af93ffd5038", + "value": "0x1314fb37062980000" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x50d61", + "output": "0x" + }, + "subtraces": 14, + "traceAddress": [ + 0, + 2, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x4fe81", + "input": "0x2726b0730000000000000000000000000000000000000000000000000000000000007587", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xa34", + "output": "0x000000000000000000000000dd805914a055a090892158f57dca419e8042746a" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x4f2da", + "input": "0x36569e77", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x95e", + "output": "0x00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x4e7f3", + "input": "0x2c2cb9fd0000000000000000000000000000000000000000000000000000000000007587", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x9b6", + "output": "0x4554482d41000000000000000000000000000000000000000000000000000000" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 2 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x4d333", + "input": "0x7bd2bea7", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x98a", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 3 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x4a4fa", + "input": "0xd0e30db0", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x1314fb37062980000" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5da6", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 4 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x44751", + "input": "0x7bd2bea7", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x1ba", + "output": "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 5 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x443e1", + "input": "0x095ea7b30000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5f64", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 6 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x3e467", + "input": "0x3b4da69f000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xcf11", + "output": "0x" + }, + "subtraces": 2, + "traceAddress": [ + 0, + 2, + 0, + 7 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "callType": "call", + "gas": "0x3b018", + "input": "0x7cdd3fde4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x732c", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 7, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x2f0b23f53734252bda2277357e97e1517d6b042a", + "callType": "call", + "gas": "0x33c93", + "input": "0x23b872dd000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000002f0b23f53734252bda2277357e97e1517d6b042a000000000000000000000000000000000000000000000001314fb37062980000", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x22f4", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 7, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x30d0f", + "input": "0x44e2a5a84554482d41000000000000000000000000000000000000000000000000000000", + "to": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xde8c", + "output": "0x00000000000000000000000000000000000000000380cda8be5c7905bb99b3dd" + }, + "subtraces": 2, + "traceAddress": [ + 0, + 2, + 0, + 8 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "callType": "call", + "gas": "0x2eda5", + "input": "0xd9638d364554482d41000000000000000000000000000000000000000000000000000000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x2b56", + "output": "0x000000000000000000000000000000000000000000a414ceb9bcf32e5e28435600000000000000000000000000000000000000000380ccf64585d61dfc80728d000000000000000000000000000000000000000dee286c5d5714c921f9f6469e00000000000000000003da00ea8c20b2e2f1508a7e47e19e143c37be5317de5200000000000000000000000a436f434bd5f5c792d09a618c74cf000000000000" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 8, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x19c0976f590d67707e62397c87829d896dc0f1f1", + "callType": "call", + "gas": "0x29b33", + "input": "0xb65337df4554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000a950524441892a31ebddf91d3ceefa04bf4544660000000000000000000000000000000000000000000000b278d6a2e7bf194150", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x5a46", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 8, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x23046", + "input": "0x6c25b346000000000000000000000000dd805914a055a090892158f57dca419e8042746a", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x9e8", + "output": "0x000000000000000000000000000000000000000002e8bd1d2ae94d3a3bb12fb8" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 9 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x221b4", + "input": "0x45e6bdcd0000000000000000000000000000000000000000000000000000000000007587000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x9af4", + "output": "0x" + }, + "subtraces": 1, + "traceAddress": [ + 0, + 2, + 0, + 10 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "callType": "call", + "gas": "0x20b33", + "input": "0x760887034554482d41000000000000000000000000000000000000000000000000000000000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000000000000000000000000001314fb370629800000000000000000000000000000000000000000000000001f403f2b3166746390c", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x7ba9", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 10, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0x186af", + "input": "0xf9f30db60000000000000000000000000000000000000000000000000000000000007587000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "to": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x83ad", + "output": "0x" + }, + "subtraces": 1, + "traceAddress": [ + 0, + 2, + 0, + 11 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x5ef30b9986345249bc32d8928b7ee64de9435e39", + "callType": "call", + "gas": "0x17b3b", + "input": "0xbb35783b000000000000000000000000dd805914a055a090892158f57dca419e8042746a000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f6000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x6d27", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 11, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "staticcall", + "gas": "0x1036f", + "input": "0x4538c4eb000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xa35", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 12 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0xbaae833f06dac8ef2ab8dea7b707dbcfa048a5f6", + "callType": "call", + "gas": "0xee07", + "input": "0xef693bed000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "to": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0xdf71", + "output": "0x" + }, + "subtraces": 2, + "traceAddress": [ + 0, + 2, + 0, + 13 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "callType": "call", + "gas": "0xd6a5", + "input": "0xbb35783b000000000000000000000000baae833f06dac8ef2ab8dea7b707dbcfa048a5f60000000000000000000000009759a6ac90977b93b58547b4a71c78317f391a28000000000000000000000006d79f82328ea3da61e066ebb2f88a000000000000", + "to": "0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x2a5b", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 13, + 0 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + }, + { + "action": { + "from": "0x9759a6ac90977b93b58547b4a71c78317f391a28", + "callType": "call", + "gas": "0x999d", + "input": "0x40c10f19000000000000000000000000ef54b1ec1bb9c0f653db07a6f6409bb3901ac8be00000000000000000000000000000000000000000000021e19e0c9bab2400000", + "to": "0x6b175474e89094c44da98b954eedeac495271d0f", + "value": "0x0" + }, + "blockHash": "0xc9d2c4f20dc949a99c39ea78c39c6696d805b7186e5b32e540d6ed68862e82e0", + "blockNumber": 16494085, + "result": { + "gasUsed": "0x7c65", + "output": "0x" + }, + "subtraces": 0, + "traceAddress": [ + 0, + 2, + 0, + 13, + 1 + ], + "transactionHash": "0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350", + "transactionPosition": 277, + "type": "call" + } + ] +} \ No newline at end of file diff --git a/turbo/jsonrpc/trace_adhoc.go b/turbo/jsonrpc/trace_adhoc.go index bc73fd1911e..f262ac42f12 100644 --- a/turbo/jsonrpc/trace_adhoc.go +++ b/turbo/jsonrpc/trace_adhoc.go @@ -23,6 +23,7 @@ import ( "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/core/vm" + "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/polygon/tracer" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/rpchelper" @@ -225,7 +226,24 @@ func (args *TraceCallParam) ToMessage(globalGasCap uint64, baseFee *uint256.Int) return msg, nil } -// OpenEthereum-style tracer +func parseOeTracerConfig(traceConfig *tracers.TraceConfig) (OeTracerConfig, error) { + if traceConfig == nil || traceConfig.TracerConfig == nil || *traceConfig.TracerConfig == nil { + return OeTracerConfig{}, nil + } + + var config OeTracerConfig + if err := json.Unmarshal(*traceConfig.TracerConfig, &config); err != nil { + return OeTracerConfig{}, err + } + + return config, nil +} + +type OeTracerConfig struct { + IncludePrecompiles bool `json:"includePrecompiles"` // by default Parity/OpenEthereum format does not include precompiles +} + +// OeTracer is an OpenEthereum-style tracer type OeTracer struct { r *TraceCallResult traceAddr []int @@ -241,6 +259,7 @@ type OeTracer struct { lastOffStack *VmTraceOp vmOpStack []*VmTraceOp // Stack of vmTrace operations as call depth increases idx []string // Prefix for the "idx" inside operations, for easier navigation + config OeTracerConfig } func (ot *OeTracer) CaptureTxStart(gasLimit uint64) {} @@ -280,7 +299,9 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon } if precompile && deep && (value == nil || value.IsZero()) { ot.precompile = true - return + if !ot.config.IncludePrecompiles { + return + } } if gas > 500000000 { gas = 500000001 - (0x8000000000000000 - gas) @@ -379,7 +400,9 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e } if ot.precompile { ot.precompile = false - return + if !ot.config.IncludePrecompiles { + return + } } if !deep { ot.r.Output = libcommon.CopyBytes(output) @@ -712,7 +735,7 @@ func (sd *StateDiff) CompareStates(initialIbs, ibs *state.IntraBlockState) { } } -func (api *TraceAPIImpl) ReplayTransaction(ctx context.Context, txHash libcommon.Hash, traceTypes []string, gasBailOut *bool) (*TraceCallResult, error) { +func (api *TraceAPIImpl) ReplayTransaction(ctx context.Context, txHash libcommon.Hash, traceTypes []string, gasBailOut *bool, traceConfig *tracers.TraceConfig) (*TraceCallResult, error) { if gasBailOut == nil { gasBailOut = new(bool) // false by default } @@ -771,7 +794,7 @@ func (api *TraceAPIImpl) ReplayTransaction(ctx context.Context, txHash libcommon signer := types.MakeSigner(chainConfig, blockNum, block.Time()) // Returns an array of trace arrays, one trace array for each transaction - traces, _, err := api.callManyTransactions(ctx, tx, block, traceTypes, txnIndex, *gasBailOut, signer, chainConfig) + traces, _, err := api.callManyTransactions(ctx, tx, block, traceTypes, txnIndex, *gasBailOut, signer, chainConfig, traceConfig) if err != nil { return nil, err } @@ -812,7 +835,7 @@ func (api *TraceAPIImpl) ReplayTransaction(ctx context.Context, txHash libcommon return result, nil } -func (api *TraceAPIImpl) ReplayBlockTransactions(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash, traceTypes []string, gasBailOut *bool) ([]*TraceCallResult, error) { +func (api *TraceAPIImpl) ReplayBlockTransactions(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash, traceTypes []string, gasBailOut *bool, traceConfig *tracers.TraceConfig) ([]*TraceCallResult, error) { if gasBailOut == nil { gasBailOut = new(bool) // false by default } @@ -855,7 +878,7 @@ func (api *TraceAPIImpl) ReplayBlockTransactions(ctx context.Context, blockNrOrH signer := types.MakeSigner(chainConfig, blockNumber, block.Time()) // Returns an array of trace arrays, one trace array for each transaction - traces, _, err := api.callManyTransactions(ctx, tx, block, traceTypes, -1 /* all tx indices */, *gasBailOut, signer, chainConfig) + traces, _, err := api.callManyTransactions(ctx, tx, block, traceTypes, -1 /* all tx indices */, *gasBailOut, signer, chainConfig, traceConfig) if err != nil { return nil, err } @@ -883,7 +906,7 @@ func (api *TraceAPIImpl) ReplayBlockTransactions(ctx context.Context, blockNrOrH } // Call implements trace_call. -func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTypes []string, blockNrOrHash *rpc.BlockNumberOrHash) (*TraceCallResult, error) { +func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTypes []string, blockNrOrHash *rpc.BlockNumberOrHash, traceConfig *tracers.TraceConfig) (*TraceCallResult, error) { tx, err := api.kv.BeginRo(ctx) if err != nil { return nil, err @@ -953,6 +976,10 @@ func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTyp traceResult.VmTrace = &VmTrace{Ops: []*VmTraceOp{}} } var ot OeTracer + ot.config, err = parseOeTracerConfig(traceConfig) + if err != nil { + return nil, err + } ot.compat = api.compatibility if traceTypeTrace || traceTypeVmTrace { ot.r = traceResult @@ -1018,7 +1045,7 @@ func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTyp } // CallMany implements trace_callMany. -func (api *TraceAPIImpl) CallMany(ctx context.Context, calls json.RawMessage, parentNrOrHash *rpc.BlockNumberOrHash) ([]*TraceCallResult, error) { +func (api *TraceAPIImpl) CallMany(ctx context.Context, calls json.RawMessage, parentNrOrHash *rpc.BlockNumberOrHash, traceConfig *tracers.TraceConfig) ([]*TraceCallResult, error) { dbtx, err := api.kv.BeginRo(ctx) if err != nil { return nil, err @@ -1098,12 +1125,13 @@ func (api *TraceAPIImpl) CallMany(ctx context.Context, calls json.RawMessage, pa return nil, fmt.Errorf("convert callParam to msg: %w", err) } } - results, _, err := api.doCallMany(ctx, dbtx, msgs, callParams, parentNrOrHash, nil, true /* gasBailout */, -1 /* all tx indices */) + results, _, err := api.doCallMany(ctx, dbtx, msgs, callParams, parentNrOrHash, nil, true /* gasBailout */, -1 /* all tx indices */, traceConfig) return results, err } func (api *TraceAPIImpl) doCallMany(ctx context.Context, dbtx kv.Tx, msgs []types.Message, callParams []TraceCallParam, parentNrOrHash *rpc.BlockNumberOrHash, header *types.Header, gasBailout bool, txIndexNeeded int, + traceConfig *tracers.TraceConfig, ) ([]*TraceCallResult, *state.IntraBlockState, error) { chainConfig, err := api.chainConfig(ctx, dbtx) if err != nil { @@ -1187,6 +1215,10 @@ func (api *TraceAPIImpl) doCallMany(ctx context.Context, dbtx kv.Tx, msgs []type vmConfig := vm.Config{} if (traceTypeTrace && (txIndexNeeded == -1 || txIndex == txIndexNeeded)) || traceTypeVmTrace { var ot OeTracer + ot.config, err = parseOeTracerConfig(traceConfig) + if err != nil { + return nil, nil, err + } ot.compat = api.compatibility ot.r = traceResult ot.idx = []string{fmt.Sprintf("%d-", txIndex)} diff --git a/turbo/jsonrpc/trace_adhoc_test.go b/turbo/jsonrpc/trace_adhoc_test.go index 7e38a86d05f..547fb3dd1a1 100644 --- a/turbo/jsonrpc/trace_adhoc_test.go +++ b/turbo/jsonrpc/trace_adhoc_test.go @@ -3,16 +3,31 @@ package jsonrpc import ( "context" "encoding/json" - "github.com/ledgerwatch/erigon-lib/common/hexutil" + "math/big" + "os" + "path/filepath" + "strings" "testing" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/kv" + "github.com/holiman/uint256" "github.com/stretchr/testify/require" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" + "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/erigon/common/math" + "github.com/ledgerwatch/erigon/core" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/core/vm" + "github.com/ledgerwatch/erigon/core/vm/evmtypes" + "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/tests" + "github.com/ledgerwatch/erigon/turbo/stages/mock" ) func TestEmptyQuery(t *testing.T) { @@ -20,7 +35,7 @@ func TestEmptyQuery(t *testing.T) { api := NewTraceAPI(newBaseApiForTest(m), m.DB, &httpcfg.HttpCfg{}) // Call GetTransactionReceipt for transaction which is not in the database var latest = rpc.LatestBlockNumber - results, err := api.CallMany(context.Background(), json.RawMessage("[]"), &rpc.BlockNumberOrHash{BlockNumber: &latest}) + results, err := api.CallMany(context.Background(), json.RawMessage("[]"), &rpc.BlockNumberOrHash{BlockNumber: &latest}, nil) if err != nil { t.Errorf("calling CallMany: %v", err) } @@ -41,7 +56,7 @@ func TestCoinbaseBalance(t *testing.T) { [{"from":"0x71562b71999873db5b286df957af199ec94617f7","to":"0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e","gas":"0x15f90","gasPrice":"0x4a817c800","value":"0x1"},["trace", "stateDiff"]], [{"from":"0x71562b71999873db5b286df957af199ec94617f7","to":"0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e","gas":"0x15f90","gasPrice":"0x4a817c800","value":"0x1"},["trace", "stateDiff"]] ] -`), &rpc.BlockNumberOrHash{BlockNumber: &latest}) +`), &rpc.BlockNumberOrHash{BlockNumber: &latest}, nil) if err != nil { t.Errorf("calling CallMany: %v", err) } @@ -73,7 +88,7 @@ func TestReplayTransaction(t *testing.T) { } // Call GetTransactionReceipt for transaction which is not in the database - results, err := api.ReplayTransaction(context.Background(), txnHash, []string{"stateDiff"}, new(bool)) + results, err := api.ReplayTransaction(context.Background(), txnHash, []string{"stateDiff"}, new(bool), nil) if err != nil { t.Errorf("calling ReplayTransaction: %v", err) } @@ -90,7 +105,7 @@ func TestReplayBlockTransactions(t *testing.T) { // Call GetTransactionReceipt for transaction which is not in the database n := rpc.BlockNumber(6) - results, err := api.ReplayBlockTransactions(m.Ctx, rpc.BlockNumberOrHash{BlockNumber: &n}, []string{"stateDiff"}, new(bool)) + results, err := api.ReplayBlockTransactions(m.Ctx, rpc.BlockNumberOrHash{BlockNumber: &n}, []string{"stateDiff"}, new(bool), nil) if err != nil { t.Errorf("calling ReplayBlockTransactions: %v", err) } @@ -100,3 +115,107 @@ func TestReplayBlockTransactions(t *testing.T) { v := addrDiff.Balance.(map[string]*hexutil.Big)["+"].ToInt().Uint64() require.Equal(t, uint64(1_000_000_000_000_000), v) } + +func TestOeTracer(t *testing.T) { + type callContext struct { + Number math.HexOrDecimal64 `json:"number"` + Hash libcommon.Hash `json:"hash"` + Difficulty *math.HexOrDecimal256 `json:"difficulty"` + Time math.HexOrDecimal64 `json:"timestamp"` + GasLimit math.HexOrDecimal64 `json:"gasLimit"` + BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` + Miner libcommon.Address `json:"miner"` + TransactionHash libcommon.Hash `json:"transactionHash"` + TransactionPosition uint64 `json:"transactionPosition"` + } + + type testcase struct { + Genesis *types.Genesis `json:"genesis"` + Context *callContext `json:"context"` + Input string `json:"input"` + TracerConfig json.RawMessage `json:"tracerConfig"` + Result []*ParityTrace `json:"result"` + } + + dirPath := "oetracer" + files, err := dir.ReadDir(filepath.Join("testdata", dirPath)) + require.NoError(t, err) + for _, file := range files { + if !strings.HasSuffix(file.Name(), ".json") { + continue + } + file := file // capture range variable + t.Run(strings.TrimSuffix(file.Name(), ".json"), func(t *testing.T) { + t.Parallel() + + test := new(testcase) + blob, err := os.ReadFile(filepath.Join("testdata", dirPath, file.Name())) + require.NoError(t, err) + err = json.Unmarshal(blob, test) + require.NoError(t, err) + tx, err := types.UnmarshalTransactionFromBinary(common.FromHex(test.Input), false /* blobTxnsAreWrappedWithBlobs */) + require.NoError(t, err) + + // Configure a blockchain with the given prestate + signer := types.MakeSigner(test.Genesis.Config, uint64(test.Context.Number), uint64(test.Context.Time)) + context := evmtypes.BlockContext{ + CanTransfer: core.CanTransfer, + Transfer: core.Transfer, + Coinbase: test.Context.Miner, + BlockNumber: uint64(test.Context.Number), + Time: uint64(test.Context.Time), + Difficulty: (*big.Int)(test.Context.Difficulty), + GasLimit: uint64(test.Context.GasLimit), + } + if test.Context.BaseFee != nil { + context.BaseFee, _ = uint256.FromBig((*big.Int)(test.Context.BaseFee)) + } + rules := test.Genesis.Config.Rules(context.BlockNumber, context.Time) + + m := mock.Mock(t) + dbTx, err := m.DB.BeginRw(m.Ctx) + require.NoError(t, err) + defer dbTx.Rollback() + + statedb, _ := tests.MakePreState(rules, dbTx, test.Genesis.Alloc, context.BlockNumber) + msg, err := tx.AsMessage(*signer, (*big.Int)(test.Context.BaseFee), rules) + require.NoError(t, err) + txContext := core.NewEVMTxContext(msg) + + traceResult := &TraceCallResult{Trace: []*ParityTrace{}} + tracer := OeTracer{} + tracer.r = traceResult + tracer.config, err = parseOeTracerConfig(&tracers.TraceConfig{TracerConfig: &test.TracerConfig}) + require.NoError(t, err) + evm := vm.NewEVM(context, txContext, statedb, test.Genesis.Config, vm.Config{Debug: true, Tracer: &tracer}) + + st := core.NewStateTransition(evm, msg, new(core.GasPool).AddGas(tx.GetGas()).AddBlobGas(tx.GetBlobGas())) + _, err = st.TransitionDb(true /* refunds */, false /* gasBailout */) + require.NoError(t, err) + + for _, trace := range traceResult.Trace { + blockNum := uint64(test.Context.Number) + txnPos := test.Context.TransactionPosition + trace.BlockHash = &test.Context.Hash + trace.BlockNumber = &blockNum + trace.TransactionHash = &test.Context.TransactionHash + trace.TransactionPosition = &txnPos + } + + // normalize result by marshalling and unmarshalling again + // to be able to do equality comparison with expected output + // (this exists just to ensure ordering of json attributes is the same) + tracesJsonBytes, err := json.Marshal(traceResult.Trace) + require.NoError(t, err) + var normalizedResult []*ParityTrace + err = json.Unmarshal(tracesJsonBytes, &normalizedResult) + require.NoError(t, err) + + want, err := json.Marshal(test.Result) + require.NoError(t, err) + have, err := json.Marshal(normalizedResult) + require.NoError(t, err) + require.Equal(t, string(want), string(have)) + }) + } +} diff --git a/turbo/jsonrpc/trace_api.go b/turbo/jsonrpc/trace_api.go index 90315156ceb..3ac39b058f0 100644 --- a/turbo/jsonrpc/trace_api.go +++ b/turbo/jsonrpc/trace_api.go @@ -10,6 +10,7 @@ import ( "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" + "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/rpc" ) @@ -17,18 +18,18 @@ import ( type TraceAPI interface { // Ad-hoc (see ./trace_adhoc.go) - ReplayBlockTransactions(ctx context.Context, blockNr rpc.BlockNumberOrHash, traceTypes []string, gasBailOut *bool) ([]*TraceCallResult, error) - ReplayTransaction(ctx context.Context, txHash libcommon.Hash, traceTypes []string, gasBailOut *bool) (*TraceCallResult, error) - Call(ctx context.Context, call TraceCallParam, types []string, blockNr *rpc.BlockNumberOrHash) (*TraceCallResult, error) - CallMany(ctx context.Context, calls json.RawMessage, blockNr *rpc.BlockNumberOrHash) ([]*TraceCallResult, error) + ReplayBlockTransactions(ctx context.Context, blockNr rpc.BlockNumberOrHash, traceTypes []string, gasBailOut *bool, traceConfig *tracers.TraceConfig) ([]*TraceCallResult, error) + ReplayTransaction(ctx context.Context, txHash libcommon.Hash, traceTypes []string, gasBailOut *bool, traceConfig *tracers.TraceConfig) (*TraceCallResult, error) + Call(ctx context.Context, call TraceCallParam, types []string, blockNr *rpc.BlockNumberOrHash, traceConfig *tracers.TraceConfig) (*TraceCallResult, error) + CallMany(ctx context.Context, calls json.RawMessage, blockNr *rpc.BlockNumberOrHash, traceConfig *tracers.TraceConfig) ([]*TraceCallResult, error) RawTransaction(ctx context.Context, txHash libcommon.Hash, traceTypes []string) ([]interface{}, error) // Filtering (see ./trace_filtering.go) - Transaction(ctx context.Context, txHash libcommon.Hash, gasBailOut *bool) (ParityTraces, error) - Get(ctx context.Context, txHash libcommon.Hash, txIndicies []hexutil.Uint64, gasBailOut *bool) (*ParityTrace, error) - Block(ctx context.Context, blockNr rpc.BlockNumber, gasBailOut *bool) (ParityTraces, error) - Filter(ctx context.Context, req TraceFilterRequest, gasBailOut *bool, stream *jsoniter.Stream) error + Transaction(ctx context.Context, txHash libcommon.Hash, gasBailOut *bool, traceConfig *tracers.TraceConfig) (ParityTraces, error) + Get(ctx context.Context, txHash libcommon.Hash, txIndicies []hexutil.Uint64, gasBailOut *bool, traceConfig *tracers.TraceConfig) (*ParityTrace, error) + Block(ctx context.Context, blockNr rpc.BlockNumber, gasBailOut *bool, traceConfig *tracers.TraceConfig) (ParityTraces, error) + Filter(ctx context.Context, req TraceFilterRequest, gasBailOut *bool, traceConfig *tracers.TraceConfig, stream *jsoniter.Stream) error } // TraceAPIImpl is implementation of the TraceAPI interface based on remote Db access diff --git a/turbo/jsonrpc/trace_filtering.go b/turbo/jsonrpc/trace_filtering.go index d52880ea464..fb4cb755bce 100644 --- a/turbo/jsonrpc/trace_filtering.go +++ b/turbo/jsonrpc/trace_filtering.go @@ -26,6 +26,7 @@ import ( "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/stagedsync" + "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/ethdb" bortypes "github.com/ledgerwatch/erigon/polygon/bor/types" "github.com/ledgerwatch/erigon/rpc" @@ -35,7 +36,7 @@ import ( ) // Transaction implements trace_transaction -func (api *TraceAPIImpl) Transaction(ctx context.Context, txHash common.Hash, gasBailOut *bool) (ParityTraces, error) { +func (api *TraceAPIImpl) Transaction(ctx context.Context, txHash common.Hash, gasBailOut *bool, traceConfig *tracers.TraceConfig) (ParityTraces, error) { if gasBailOut == nil { gasBailOut = new(bool) // false by default } @@ -101,7 +102,7 @@ func (api *TraceAPIImpl) Transaction(ctx context.Context, txHash common.Hash, ga hash := block.Hash() signer := types.MakeSigner(chainConfig, blockNumber, block.Time()) // Returns an array of trace arrays, one trace array for each transaction - traces, _, err := api.callManyTransactions(ctx, tx, block, []string{TraceTypeTrace}, txIndex, *gasBailOut, signer, chainConfig) + traces, _, err := api.callManyTransactions(ctx, tx, block, []string{TraceTypeTrace}, txIndex, *gasBailOut, signer, chainConfig, traceConfig) if err != nil { return nil, err } @@ -126,12 +127,12 @@ func (api *TraceAPIImpl) Transaction(ctx context.Context, txHash common.Hash, ga } // Get implements trace_get -func (api *TraceAPIImpl) Get(ctx context.Context, txHash common.Hash, indicies []hexutil.Uint64, gasBailOut *bool) (*ParityTrace, error) { +func (api *TraceAPIImpl) Get(ctx context.Context, txHash common.Hash, indicies []hexutil.Uint64, gasBailOut *bool, traceConfig *tracers.TraceConfig) (*ParityTrace, error) { // Parity fails if it gets more than a single index. It returns nothing in this case. Must we? if len(indicies) > 1 { return nil, nil } - traces, err := api.Transaction(ctx, txHash, gasBailOut) + traces, err := api.Transaction(ctx, txHash, gasBailOut, traceConfig) if err != nil { return nil, err } @@ -162,7 +163,7 @@ func rewardKindToString(kind consensus.RewardKind) string { } // Block implements trace_block -func (api *TraceAPIImpl) Block(ctx context.Context, blockNr rpc.BlockNumber, gasBailOut *bool) (ParityTraces, error) { +func (api *TraceAPIImpl) Block(ctx context.Context, blockNr rpc.BlockNumber, gasBailOut *bool, traceConfig *tracers.TraceConfig) (ParityTraces, error) { if gasBailOut == nil { gasBailOut = new(bool) // false by default } @@ -194,7 +195,7 @@ func (api *TraceAPIImpl) Block(ctx context.Context, blockNr rpc.BlockNumber, gas return nil, err } signer := types.MakeSigner(cfg, blockNum, block.Time()) - traces, syscall, err := api.callManyTransactions(ctx, tx, block, []string{TraceTypeTrace}, -1 /* all tx indices */, *gasBailOut /* gasBailOut */, signer, cfg) + traces, syscall, err := api.callManyTransactions(ctx, tx, block, []string{TraceTypeTrace}, -1 /* all tx indices */, *gasBailOut /* gasBailOut */, signer, cfg, traceConfig) if err != nil { return nil, err } @@ -338,7 +339,7 @@ func traceFilterBitmapsV3(tx kv.TemporalTx, req TraceFilterRequest, from, to uin // Filter implements trace_filter // NOTE: We do not store full traces - we just store index for each address // Pull blocks which have txs with matching address -func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, gasBailOut *bool, stream *jsoniter.Stream) error { +func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, gasBailOut *bool, traceConfig *tracers.TraceConfig, stream *jsoniter.Stream) error { if gasBailOut == nil { gasBailOut = new(bool) // false by default } @@ -367,7 +368,7 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, gas } if api.historyV3(dbtx) { - return api.filterV3(ctx, dbtx.(kv.TemporalTx), fromBlock, toBlock, req, stream) + return api.filterV3(ctx, dbtx.(kv.TemporalTx), fromBlock, toBlock, req, traceConfig, stream) } toBlock++ //+1 because internally Erigon using semantic [from, to), but some RPC have different semantic fromAddresses, toAddresses, allBlocks, err := traceFilterBitmaps(dbtx, req, fromBlock, toBlock) @@ -427,7 +428,7 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, gas blockHash := block.Hash() blockNumber := block.NumberU64() signer := types.MakeSigner(chainConfig, b, block.Time()) - t, syscall, tErr := api.callManyTransactions(ctx, dbtx, block, []string{TraceTypeTrace}, -1 /* all tx indices */, *gasBailOut, signer, chainConfig) + t, syscall, tErr := api.callManyTransactions(ctx, dbtx, block, []string{TraceTypeTrace}, -1 /* all tx indices */, *gasBailOut, signer, chainConfig, traceConfig) if tErr != nil { if first { first = false @@ -528,7 +529,7 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, gas return stream.Flush() } -func (api *TraceAPIImpl) filterV3(ctx context.Context, dbtx kv.TemporalTx, fromBlock, toBlock uint64, req TraceFilterRequest, stream *jsoniter.Stream) error { +func (api *TraceAPIImpl) filterV3(ctx context.Context, dbtx kv.TemporalTx, fromBlock, toBlock uint64, req TraceFilterRequest, traceConfig *tracers.TraceConfig, stream *jsoniter.Stream) error { var fromTxNum, toTxNum uint64 var err error if fromBlock > 0 { @@ -774,6 +775,10 @@ func (api *TraceAPIImpl) filterV3(ctx context.Context, dbtx kv.TemporalTx, fromB vmConfig.SkipAnalysis = core.SkipAnalysis(chainConfig, blockNum) traceResult := &TraceCallResult{Trace: []*ParityTrace{}} var ot OeTracer + ot.config, err = parseOeTracerConfig(traceConfig) + if err != nil { + return err + } ot.compat = api.compatibility ot.r = traceResult ot.idx = []string{fmt.Sprintf("%d-", txIndex)} @@ -898,6 +903,7 @@ func (api *TraceAPIImpl) callManyTransactions( gasBailOut bool, signer *types.Signer, cfg *chain.Config, + traceConfig *tracers.TraceConfig, ) ([]*TraceCallResult, consensus.SystemCall, error) { blockNumber := block.NumberU64() pNo := blockNumber @@ -984,7 +990,7 @@ func (api *TraceAPIImpl) callManyTransactions( BlockNumber: &parentNo, BlockHash: &parentHash, RequireCanonical: true, - }, header, gasBailOut /* gasBailout */, txIndex) + }, header, gasBailOut /* gasBailout */, txIndex, traceConfig) if cmErr != nil { return nil, nil, cmErr