From 2430c6de9ef9e34fa30430a7cbe4fb92650883ed Mon Sep 17 00:00:00 2001 From: tony Date: Wed, 2 Aug 2023 15:07:06 +0800 Subject: [PATCH 1/4] runtime: make transaction executor interruptiable, ensure tracer APIs following API timeout --- api/debug/debug.go | 25 +++++++++++++++++---- runtime/runtime.go | 54 +++++++++++++++++++++++++--------------------- 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/api/debug/debug.go b/api/debug/debug.go index 9d6c6b4a6..6cf02a8a7 100644 --- a/api/debug/debug.go +++ b/api/debug/debug.go @@ -91,7 +91,8 @@ func (d *Debug) prepareClauseEnv(ctx context.Context, blockID thor.Bytes32, txIn if txIndex == uint64(i) && clauseIndex == clauseCounter { return rt, txExec, txID, nil } - if _, _, err := txExec.NextClause(); err != nil { + exec, _ := txExec.PrepareNext() + if _, _, err := exec(); err != nil { return nil, nil, thor.Bytes32{}, err } clauseCounter++ @@ -124,9 +125,23 @@ func (d *Debug) traceClause(ctx context.Context, tracer tracers.Tracer, blockID State: rt.State(), }) rt.SetVMConfig(vm.Config{Debug: true, Tracer: tracer}) - _, _, err = txExec.NextClause() - if err != nil { + errCh := make(chan error, 1) + exec, interrupt := txExec.PrepareNext() + go func() { + _, _, err := exec() + errCh <- err + }() + + select { + case <-ctx.Done(): + err := ctx.Err() + tracer.Stop(err) + interrupt() return nil, err + case err := <-errCh: + if err != nil { + return nil, err + } } return tracer.GetResult() } @@ -232,8 +247,10 @@ func (d *Debug) traceCall(ctx context.Context, tracer tracers.Tracer, summary *c }() select { case <-ctx.Done(): + err := ctx.Err() + tracer.Stop(err) interrupt() - return nil, ctx.Err() + return nil, err case err := <-errCh: if err != nil { return nil, err diff --git a/runtime/runtime.go b/runtime/runtime.go index 1c41588c4..ab3747dd1 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -74,7 +74,7 @@ type Output struct { type TransactionExecutor struct { HasNextClause func() bool - NextClause func() (gasUsed uint64, output *Output, err error) + PrepareNext func() (exec func() (gasUsed uint64, output *Output, err error), interrupt func()) Finalize func() (*tx.Receipt, error) } @@ -367,7 +367,8 @@ func (rt *Runtime) ExecuteTransaction(tx *tx.Transaction) (receipt *tx.Receipt, return nil, err } for executor.HasNextClause() { - if _, _, err := executor.NextClause(); err != nil { + exec, _ := executor.PrepareNext() + if _, _, err := exec(); err != nil { return nil, err } } @@ -406,34 +407,39 @@ func (rt *Runtime) PrepareTransaction(tx *tx.Transaction) (*TransactionExecutor, return &TransactionExecutor{ HasNextClause: hasNext, - NextClause: func() (gasUsed uint64, output *Output, err error) { + PrepareNext: func() (exec func() (uint64, *Output, error), interrupt func()) { nextClauseIndex := uint32(len(txOutputs)) - exec, _ := rt.PrepareClause(resolvedTx.Clauses[nextClauseIndex], nextClauseIndex, leftOverGas, txCtx) - output, _, err = exec() - if err != nil { - return 0, nil, err - } - gasUsed = leftOverGas - output.LeftOverGas - leftOverGas = output.LeftOverGas + execFunc, interrupt := rt.PrepareClause(resolvedTx.Clauses[nextClauseIndex], nextClauseIndex, leftOverGas, txCtx) - // Apply refund counter, capped to half of the used gas. - refund := gasUsed / 2 - if refund > output.RefundGas { - refund = output.RefundGas - } + exec = func() (gasUsed uint64, output *Output, err error) { + output, _, err = execFunc() + if err != nil { + return 0, nil, err + } + gasUsed = leftOverGas - output.LeftOverGas + leftOverGas = output.LeftOverGas - // won't overflow - leftOverGas += refund + // Apply refund counter, capped to half of the used gas. + refund := gasUsed / 2 + if refund > output.RefundGas { + refund = output.RefundGas + } + + // won't overflow + leftOverGas += refund - if output.VMErr != nil { - // vm exception here - // revert all executed clauses - rt.state.RevertTo(checkpoint) - reverted = true - txOutputs = nil + if output.VMErr != nil { + // vm exception here + // revert all executed clauses + rt.state.RevertTo(checkpoint) + reverted = true + txOutputs = nil + return + } + txOutputs = append(txOutputs, &Tx.Output{Events: output.Events, Transfers: output.Transfers}) return } - txOutputs = append(txOutputs, &Tx.Output{Events: output.Events, Transfers: output.Transfers}) + return }, Finalize: func() (*Tx.Receipt, error) { From b32f791df7080726847f080e33d0bb3d95378bff Mon Sep 17 00:00:00 2001 From: tony Date: Thu, 10 Aug 2023 15:16:13 +0800 Subject: [PATCH 2/4] vm: remove Debug from vm config --- api/debug/debug.go | 4 ++-- tracers/js/tracer_test.go | 4 ++-- tracers/logger/logger_test.go | 2 +- tracers/tracers_test.go | 5 +---- vm/evm.go | 12 ++++++------ vm/instructions.go | 21 ++++++++++++++------- vm/interpreter.go | 8 +++----- 7 files changed, 29 insertions(+), 27 deletions(-) diff --git a/api/debug/debug.go b/api/debug/debug.go index 6cf02a8a7..8c0455034 100644 --- a/api/debug/debug.go +++ b/api/debug/debug.go @@ -124,7 +124,7 @@ func (d *Debug) traceClause(ctx context.Context, tracer tracers.Tracer, blockID ClauseIndex: int(clauseIndex), State: rt.State(), }) - rt.SetVMConfig(vm.Config{Debug: true, Tracer: tracer}) + rt.SetVMConfig(vm.Config{Tracer: tracer}) errCh := make(chan error, 1) exec, interrupt := txExec.PrepareNext() go func() { @@ -237,7 +237,7 @@ func (d *Debug) traceCall(ctx context.Context, tracer tracers.Tracer, summary *c BlockTime: summary.Header.Timestamp(), State: state, }) - rt.SetVMConfig(vm.Config{Debug: true, Tracer: tracer}) + rt.SetVMConfig(vm.Config{Tracer: tracer}) errCh := make(chan error, 1) exec, interrupt := rt.PrepareClause(clause, 0, gas, txCtx) diff --git a/tracers/js/tracer_test.go b/tracers/js/tracer_test.go index 69df6f48f..8651060c2 100644 --- a/tracers/js/tracer_test.go +++ b/tracers/js/tracer_test.go @@ -60,7 +60,7 @@ func testCtx() vm.Context { func runTrace(tracer tracers.Tracer, ctx vm.Context, chaincfg *vm.ChainConfig, contractCode []byte) (json.RawMessage, error) { var ( - env = vm.NewEVM(ctx, &dummyStatedb{}, chaincfg, vm.Config{Debug: true, Tracer: tracer}) + env = vm.NewEVM(ctx, &dummyStatedb{}, chaincfg, vm.Config{Tracer: tracer}) startGas uint64 = 10000 value = big.NewInt(0) @@ -178,7 +178,7 @@ func TestHaltBetweenSteps(t *testing.T) { env := vm.NewEVM(vm.Context{ BlockNumber: big.NewInt(1), GasPrice: big.NewInt(1), - }, &dummyStatedb{}, &vm.ChainConfig{ChainConfig: *params.TestChainConfig}, vm.Config{Debug: true, Tracer: tracer}) + }, &dummyStatedb{}, &vm.ChainConfig{ChainConfig: *params.TestChainConfig}, vm.Config{Tracer: tracer}) tracer.CaptureStart(env, common.Address{}, common.Address{}, false, []byte{}, 0, big.NewInt(0)) contract := vm.NewContract(&account{}, &account{}, big.NewInt(0), 0) tracer.CaptureState(0, 0, 0, 0, nil, nil, contract, nil, 0, nil) diff --git a/tracers/logger/logger_test.go b/tracers/logger/logger_test.go index c1bcb9395..d4c4fd6df 100644 --- a/tracers/logger/logger_test.go +++ b/tracers/logger/logger_test.go @@ -54,7 +54,7 @@ func (*dummyStatedb) SetState(_ common.Address, _ common.Hash, _ common.Hash) {} func TestStoreCapture(t *testing.T) { var ( logger, _ = NewStructLogger(nil) - env = vm.NewEVM(vm.Context{}, &dummyStatedb{}, &vm.ChainConfig{ChainConfig: *params.TestChainConfig}, vm.Config{Debug: true, Tracer: logger}) + env = vm.NewEVM(vm.Context{}, &dummyStatedb{}, &vm.ChainConfig{ChainConfig: *params.TestChainConfig}, vm.Config{Tracer: logger}) contract = vm.NewContract(&dummyContractRef{}, &dummyContractRef{}, new(big.Int), 100000) ) diff --git a/tracers/tracers_test.go b/tracers/tracers_test.go index 54dcab770..b9dc85b92 100644 --- a/tracers/tracers_test.go +++ b/tracers/tracers_test.go @@ -128,10 +128,7 @@ func RunTracerTest(t *testing.T, data *traceTest, tracerName string) json.RawMes BlockTime: rt.Context().Time, State: rt.State(), }) - rt.SetVMConfig(vm.Config{ - Debug: true, - Tracer: tr, - }) + rt.SetVMConfig(vm.Config{Tracer: tr}) clause := tx.NewClause(data.Clause.To).WithValue((*big.Int)(data.Calls.Value)).WithData(data.Clause.Data) exec, _ := rt.PrepareClause(clause, data.Context.ClauseIndex, uint64(data.Calls.Gas), &xenv.TransactionContext{ diff --git a/vm/evm.go b/vm/evm.go index 4b0c99d1a..444f2e6b9 100644 --- a/vm/evm.go +++ b/vm/evm.go @@ -164,7 +164,7 @@ func (evm *EVM) Depth() int { // the necessary steps to create accounts and reverses the state in case of an // execution error or failed value transfer. func (evm *EVM) Call(caller ContractRef, addr common.Address, input []byte, gas uint64, value *big.Int) (ret []byte, leftOverGas uint64, err error) { - if evm.vmConfig.Debug { + if evm.vmConfig.Tracer != nil { // Capture the tracer start/end events in debug mode if evm.depth == 0 { evm.vmConfig.Tracer.CaptureStart(evm, caller.Address(), addr, false, input, gas, value) @@ -257,7 +257,7 @@ func (evm *EVM) CallCode(caller ContractRef, addr common.Address, input []byte, } // Invoke tracer hooks that signal entering/exiting a call frame - if evm.vmConfig.Debug { + if evm.vmConfig.Tracer != nil { evm.vmConfig.Tracer.CaptureEnter(CALLCODE, caller.Address(), addr, input, gas, value) defer func() { evm.vmConfig.Tracer.CaptureExit(ret, gas-leftOverGas, err) @@ -299,7 +299,7 @@ func (evm *EVM) DelegateCall(caller ContractRef, addr common.Address, input []by } // Invoke tracer hooks that signal entering/exiting a call frame - if evm.vmConfig.Debug { + if evm.vmConfig.Tracer != nil { evm.vmConfig.Tracer.CaptureEnter(DELEGATECALL, caller.Address(), addr, input, gas, nil) defer func() { evm.vmConfig.Tracer.CaptureExit(ret, gas-leftOverGas, err) @@ -346,7 +346,7 @@ func (evm *EVM) StaticCall(caller ContractRef, addr common.Address, input []byte } // Invoke tracer hooks that signal entering/exiting a call frame - if evm.vmConfig.Debug { + if evm.vmConfig.Tracer != nil { evm.vmConfig.Tracer.CaptureEnter(STATICCALL, caller.Address(), addr, input, gas, nil) defer func() { evm.vmConfig.Tracer.CaptureExit(ret, gas-leftOverGas, err) @@ -380,7 +380,7 @@ func (evm *EVM) StaticCall(caller ContractRef, addr common.Address, input []byte func (evm *EVM) Create(caller ContractRef, code []byte, gas uint64, value *big.Int) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) { contractAddr = evm.NewContractAddress(evm, evm.contractCreationCount) - if evm.vmConfig.Debug { + if evm.vmConfig.Tracer != nil { // Capture the tracer start/end events in debug mode if evm.depth == 0 { evm.vmConfig.Tracer.CaptureStart(evm, caller.Address(), contractAddr, true, code, gas, value) @@ -410,7 +410,7 @@ func (evm *EVM) Create2(caller ContractRef, code []byte, gas uint64, endowment * contractAddr = CreateAddress2(caller.Address(), salt.Bytes32(), crypto.Keccak256Hash(code).Bytes()) // Capture the tracer start/end events in debug mode - if evm.vmConfig.Debug { + if evm.vmConfig.Tracer != nil { // Handle tracer events for entering and exiting a call frame evm.vmConfig.Tracer.CaptureEnter(CREATE2, caller.Address(), contractAddr, code, gas, endowment) defer func() { diff --git a/vm/instructions.go b/vm/instructions.go index 498f774bc..d5ddb25c3 100644 --- a/vm/instructions.go +++ b/vm/instructions.go @@ -416,16 +416,21 @@ func opExtCodeCopy(pc *uint64, evm *EVM, contract *Contract, memory *Memory, sta // opExtCodeHash returns the code hash of a specified account. // There are several cases when the function is called, while we can relay everything // to `state.GetCodeHash` function to ensure the correctness. -// (1) Caller tries to get the code hash of a normal contract account, state +// +// (1) Caller tries to get the code hash of a normal contract account, state +// // should return the relative code hash and set it as the result. // -// (2) Caller tries to get the code hash of a non-existent account, state should +// (2) Caller tries to get the code hash of a non-existent account, state should +// // return common.Hash{} and zero will be set as the result. // -// (3) Caller tries to get the code hash for an account without contract code, +// (3) Caller tries to get the code hash for an account without contract code, +// // state should return emptyCodeHash(0xc5d246...) as the result. // -// (4) Caller tries to get the code hash of a precompiled account, the result +// (4) Caller tries to get the code hash of a precompiled account, the result +// // should be zero or emptyCodeHash. // // It is worth noting that in order to avoid unnecessary create and clean, @@ -434,10 +439,12 @@ func opExtCodeCopy(pc *uint64, evm *EVM, contract *Contract, memory *Memory, sta // If the precompile account is not transferred any amount on a private or // customized chain, the return value will be zero. // -// (5) Caller tries to get the code hash for an account which is marked as suicided +// (5) Caller tries to get the code hash for an account which is marked as suicided +// // in the current transaction, the code hash of this account should be returned. // -// (6) Caller tries to get the code hash for an account which is marked as deleted, +// (6) Caller tries to get the code hash for an account which is marked as deleted, +// // this account should be regarded as a non-existent account and zero should be returned. func opExtCodeHash(pc *uint64, evm *EVM, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) { slot := stack.peek() @@ -800,7 +807,7 @@ func opStop(pc *uint64, evm *EVM, contract *Contract, memory *Memory, stack *Sta func opSuicide(pc *uint64, evm *EVM, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) { receiver := stack.popptr().Bytes20() - if evm.vmConfig.Debug { + if evm.vmConfig.Tracer != nil { bal := evm.StateDB.GetBalance(contract.Address()) evm.vmConfig.Tracer.CaptureEnter(SELFDESTRUCT, contract.Address(), receiver, []byte{}, 0, bal) evm.vmConfig.Tracer.CaptureExit([]byte{}, 0, nil) diff --git a/vm/interpreter.go b/vm/interpreter.go index d67978a54..341e5a1f4 100644 --- a/vm/interpreter.go +++ b/vm/interpreter.go @@ -26,8 +26,6 @@ import ( // Config are the configuration options for the Interpreter type Config struct { - // Debug enabled debugging Interpreter options - Debug bool // Tracer is the op code logger Tracer Logger // NoRecursion disabled Interpreter call, callcode, @@ -146,7 +144,7 @@ func (in *Interpreter) Run(contract *Contract, input []byte) (ret []byte, err er contract.Input = input - if in.cfg.Debug { + if in.cfg.Tracer != nil { defer func() { if err != nil { if !logged { @@ -162,7 +160,7 @@ func (in *Interpreter) Run(contract *Contract, input []byte) (ret []byte, err er // the execution of one of the operations or until the done flag is set by the // parent context. for atomic.LoadInt32(&in.evm.abort) == 0 { - if in.cfg.Debug { + if in.cfg.Tracer != nil { // Capture pre-execution values for tracing. logged, pcCopy, gasCopy = false, pc, contract.Gas } @@ -204,7 +202,7 @@ func (in *Interpreter) Run(contract *Contract, input []byte) (ret []byte, err er } // Do tracing before memory expansion - if in.cfg.Debug { + if in.cfg.Tracer != nil { in.cfg.Tracer.CaptureState(pc, op, gasCopy, cost, mem, stack, contract, in.returnData, in.evm.depth, err) logged = true } From 1f2deffa2dcb72aba9ab3b27b9a4eaed9da64160 Mon Sep 17 00:00:00 2001 From: tony Date: Tue, 15 Aug 2023 15:22:47 +0800 Subject: [PATCH 3/4] add clause start/end stub to handle gas correctly --- runtime/runtime.go | 7 +++++++ tracers/js/goja.go | 18 ++++++++++++++---- tracers/js/tracer_test.go | 3 +++ tracers/logger/logger.go | 24 ++++++++++++++++++------ tracers/native/call.go | 20 ++++++++++++++------ tracers/native/noop.go | 8 ++++++++ tracers/native/prestate.go | 29 ++++++++++++++++++----------- tracers/readme.md | 2 +- tracers/tracers_test.go | 13 ++++++++++++- vm/logger.go | 3 +++ 10 files changed, 98 insertions(+), 29 deletions(-) diff --git a/runtime/runtime.go b/runtime/runtime.go index ab3747dd1..d94e7dc18 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -412,6 +412,13 @@ func (rt *Runtime) PrepareTransaction(tx *tx.Transaction) (*TransactionExecutor, execFunc, interrupt := rt.PrepareClause(resolvedTx.Clauses[nextClauseIndex], nextClauseIndex, leftOverGas, txCtx) exec = func() (gasUsed uint64, output *Output, err error) { + if rt.vmConfig.Tracer != nil { + rt.vmConfig.Tracer.CaptureClauseStart(leftOverGas) + defer func() { + rt.vmConfig.Tracer.CaptureClauseEnd(leftOverGas) + }() + } + output, _, err = execFunc() if err != nil { return 0, nil, err diff --git a/tracers/js/goja.go b/tracers/js/goja.go index 398319b29..a381b83a8 100644 --- a/tracers/js/goja.go +++ b/tracers/js/goja.go @@ -34,12 +34,12 @@ import ( "github.com/vechain/thor/vm" ) -// var assetTracers = make(map[string]string) +var assetTracers = make(map[string]string) // init retrieves the JavaScript transaction tracers included in go-ethereum. func init() { var err error - assetTracers, err := jsassets.Load() + assetTracers, err = jsassets.Load() if err != nil { panic(err) } @@ -202,10 +202,21 @@ func newJsTracer(code string, cfg json.RawMessage) (tracers.Tracer, error) { return t, nil } +// CaptureClauseStart implements the Tracer interface and is invoked at the beginning of +// clause processing. +func (t *jsTracer) CaptureClauseStart(gasLimit uint64) { + t.gasLimit = gasLimit +} + +// CaptureClauseEnd implements the Tracer interface and is invoked at the end of +// clause processing. +func (t *jsTracer) CaptureClauseEnd(restGas uint64) { + t.ctx["gasUsed"] = t.vm.ToValue(t.gasLimit - restGas) +} + // CaptureStart implements the Tracer interface to initialize the tracing operation. func (t *jsTracer) CaptureStart(env *vm.EVM, from common.Address, to common.Address, create bool, input []byte, gas uint64, value *big.Int) { t.env = env - t.gasLimit = gas db := &dbObj{db: env.StateDB, vm: t.vm, toBig: t.toBig, toBuf: t.toBuf, fromBuf: t.fromBuf} t.dbValue = db.setupObject() if create { @@ -269,7 +280,6 @@ func (t *jsTracer) CaptureFault(pc uint64, op vm.OpCode, gas, cost uint64, memor // CaptureEnd is called after the call finishes to finalize the tracing. func (t *jsTracer) CaptureEnd(output []byte, gasUsed uint64, err error) { - t.ctx["gasUsed"] = t.vm.ToValue(gasUsed) t.ctx["output"] = t.vm.ToValue(output) if err != nil { t.ctx["error"] = t.vm.ToValue(err.Error()) diff --git a/tracers/js/tracer_test.go b/tracers/js/tracer_test.go index 8651060c2..b556810e0 100644 --- a/tracers/js/tracer_test.go +++ b/tracers/js/tracer_test.go @@ -71,9 +71,12 @@ func runTrace(tracer tracers.Tracer, ctx vm.Context, chaincfg *vm.ChainConfig, c contract.Code = contractCode } + tracer.CaptureClauseStart(startGas) tracer.CaptureStart(env, contract.Caller(), contract.Address(), false, []byte{}, startGas, value) ret, err := env.Interpreter().Run(contract, []byte{}) tracer.CaptureEnd(ret, startGas-contract.Gas, err) + // Rest gas assumes no refund + tracer.CaptureClauseEnd(contract.Gas) if err != nil { return nil, err } diff --git a/tracers/logger/logger.go b/tracers/logger/logger.go index 57d91e31c..5033d8233 100644 --- a/tracers/logger/logger.go +++ b/tracers/logger/logger.go @@ -107,11 +107,12 @@ type StructLogger struct { cfg Config env *vm.EVM - storage map[common.Address]Storage - logs []StructLog - output []byte - err error - usedGas uint64 + storage map[common.Address]Storage + logs []StructLog + output []byte + err error + gasLimit uint64 + usedGas uint64 interrupt atomic.Value // Atomic flag to signal execution interruption reason error // Textual reason for the interruption @@ -220,7 +221,6 @@ func (l *StructLogger) CaptureFault(pc uint64, op vm.OpCode, gas, cost uint64, m func (l *StructLogger) CaptureEnd(output []byte, gasUsed uint64, err error) { l.output = output l.err = err - l.usedGas = gasUsed if l.cfg.Debug { fmt.Printf("%#x\n", output) if err != nil { @@ -264,6 +264,14 @@ func (l *StructLogger) Stop(err error) { l.interrupt.Store(true) } +func (l *StructLogger) CaptureClauseStart(gasLimit uint64) { + l.gasLimit = gasLimit +} + +func (l *StructLogger) CaptureClauseEnd(restGas uint64) { + l.usedGas = l.gasLimit - restGas +} + // StructLogs returns the captured log entries. func (l *StructLogger) StructLogs() []StructLog { return l.logs } @@ -388,6 +396,10 @@ func (t *mdLogger) CaptureEnter(typ vm.OpCode, from common.Address, to common.Ad func (t *mdLogger) CaptureExit(output []byte, gasUsed uint64, err error) {} +func (*mdLogger) CaptureClauseStart(gasLimit uint64) {} + +func (*mdLogger) CaptureClauseEnd(restGas uint64) {} + // ExecutionResult groups all structured logs emitted by the EVM // while replaying a transaction in debug mode as well as transaction // execution status, the amount of gas used and the return value diff --git a/tracers/native/call.go b/tracers/native/call.go index c37d2191a..4c14926bf 100644 --- a/tracers/native/call.go +++ b/tracers/native/call.go @@ -93,6 +93,7 @@ type callTracer struct { noopTracer callstack []callFrame config callTracerConfig + gasLimit uint64 interrupt atomic.Value // Atomic flag to signal execution interruption reason error // Textual reason for the interruption } @@ -124,7 +125,7 @@ func (t *callTracer) CaptureStart(env *vm.EVM, from common.Address, to common.Ad From: from, To: &toCopy, Input: common.CopyBytes(input), - Gas: gas, + Gas: t.gasLimit, Value: value, } if create { @@ -134,12 +135,7 @@ func (t *callTracer) CaptureStart(env *vm.EVM, from common.Address, to common.Ad // CaptureEnd is called after the call finishes to finalize the tracing. func (t *callTracer) CaptureEnd(output []byte, gasUsed uint64, err error) { - t.callstack[0].GasUsed = gasUsed t.callstack[0].processOutput(output, err) - if t.config.WithLog { - // Logs are not emitted when the call fails - clearFailedLogs(&t.callstack[0], false) - } } // CaptureState implements the EVMLogger interface to trace a single step of VM execution. @@ -228,6 +224,18 @@ func (t *callTracer) CaptureExit(output []byte, gasUsed uint64, err error) { t.callstack[size-1].Calls = append(t.callstack[size-1].Calls, call) } +func (t *callTracer) CaptureClauseStart(gasLimit uint64) { + t.gasLimit = gasLimit +} + +func (t *callTracer) CaptureClauseEnd(restGas uint64) { + t.callstack[0].GasUsed = t.gasLimit - restGas + if t.config.WithLog { + // Logs are not emitted when the call fails + clearFailedLogs(&t.callstack[0], false) + } +} + // 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) { diff --git a/tracers/native/noop.go b/tracers/native/noop.go index de12d37ed..abbdcbca1 100644 --- a/tracers/native/noop.go +++ b/tracers/native/noop.go @@ -63,6 +63,14 @@ func (t *noopTracer) CaptureEnter(typ vm.OpCode, from common.Address, to common. func (t *noopTracer) CaptureExit(output []byte, gasUsed uint64, err error) { } +// CaptureClauseStart implements the Tracer interface and is invoked at the beginning of +// clause processing. +func (*noopTracer) CaptureClauseStart(gasLimit uint64) {} + +// CaptureClauseEnd implements the Tracer interface and is invoked at the end of +// clause processing. +func (*noopTracer) CaptureClauseEnd(restGas uint64) {} + // SetContext set the tracer context func (t *noopTracer) SetContext(ctx *tracers.Context) { } diff --git a/tracers/native/prestate.go b/tracers/native/prestate.go index c8678bae2..a02d8af1c 100644 --- a/tracers/native/prestate.go +++ b/tracers/native/prestate.go @@ -51,7 +51,6 @@ func (a *account) exists() bool { type accountMarshaling struct { Balance *hexutil.Big - Energy *hexutil.Big Code hexutil.Bytes } @@ -63,6 +62,7 @@ type prestateTracer struct { post state create bool to common.Address + gasLimit uint64 // Amount of gas bought for the whole tx config prestateTracerConfig interrupt atomic.Value // Atomic flag to signal execution interruption reason error // Textual reason for the interruption @@ -112,15 +112,25 @@ func (t *prestateTracer) CaptureStart(env *vm.EVM, from common.Address, to commo // CaptureEnd is called after the call finishes to finalize the tracing. func (t *prestateTracer) CaptureEnd(output []byte, gasUsed uint64, err error) { - if !t.config.DiffMode { - if t.create { - // Keep existing account prior to contract creation at that address - if s := t.pre[t.to]; s != nil && !s.exists() { - // Exclude newly created contract. - delete(t.pre, t.to) - } + if t.config.DiffMode { + return + } + + if t.create { + // Keep existing account prior to contract creation at that address + if s := t.pre[t.to]; s != nil && !s.exists() { + // Exclude newly created contract. + delete(t.pre, t.to) } + } +} + +func (t *prestateTracer) CaptureClauseStart(gasLimit uint64) { + t.gasLimit = gasLimit +} +func (t *prestateTracer) CaptureClauseEnd(restGas uint64) { + if !t.config.DiffMode { return } @@ -233,9 +243,6 @@ func (t *prestateTracer) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, } } -func (t *prestateTracer) CaptureTxEnd(restGas uint64) { -} - // SetContext set the tracer context func (t *prestateTracer) SetContext(ctx *tracers.Context) { t.ctx = ctx diff --git a/tracers/readme.md b/tracers/readme.md index c0db2a94b..4433825cb 100644 --- a/tracers/readme.md +++ b/tracers/readme.md @@ -18,7 +18,7 @@ introduce native tracers, forked from https://github.com/ethereum/go-ethereum/tr 2023-07-12 -forked from https://github.com/ethereum/go-ethereum/tree/80b7bfe70de59356a547c5a5e1c64f0a69e3873e (v1.12.1-dev) +forked from https://github.com/ethereum/go-ethereum/tree/bed84606583893fdb698cc1b5058cc47b4dbd837 (v1.12.2) + add OnlyTopCall option to call tracers + add WithLogs option to call tracers diff --git a/tracers/tracers_test.go b/tracers/tracers_test.go index b9dc85b92..0c339babe 100644 --- a/tracers/tracers_test.go +++ b/tracers/tracers_test.go @@ -135,8 +135,19 @@ func RunTracerTest(t *testing.T, data *traceTest, tracerName string) json.RawMes Origin: data.Context.TxOrigin, ID: data.Context.TxID, }) - _, _, err = exec() + tr.CaptureClauseStart(uint64(data.Calls.Gas)) + output, _, err := exec() assert.Nil(t, err) + + leftOverGas := output.LeftOverGas + gasUsed := uint64(data.Calls.Gas) - leftOverGas + refund := gasUsed / 2 + if refund > output.RefundGas { + refund = output.RefundGas + } + leftOverGas += refund + + tr.CaptureClauseEnd(leftOverGas) result, err := tr.GetResult() assert.Nil(t, err) return result diff --git a/vm/logger.go b/vm/logger.go index 0b62faada..068d6b558 100644 --- a/vm/logger.go +++ b/vm/logger.go @@ -12,6 +12,9 @@ import ( // Note that reference types are actual VM data structures; make copies // if you need to retain them beyond the current call. type Logger interface { + // Clause level + CaptureClauseStart(gasLimit uint64) + CaptureClauseEnd(restGas uint64) // Top call frame CaptureStart(env *EVM, from common.Address, to common.Address, create bool, input []byte, gas uint64, value *big.Int) CaptureEnd(output []byte, gasUsed uint64, err error) From 34f8cc7e79d66d2805d5f5fb5b64da92a9f96650 Mon Sep 17 00:00:00 2001 From: tony Date: Thu, 17 Aug 2023 16:24:38 +0800 Subject: [PATCH 4/4] tracer: more tests --- tracers/native/prestate.go | 3 +- tracers/testdata/call.json | 31 +- tracers/testdata/call_only_top.json | 25 +- tracers/testdata/call_with_log.json | 131 ++ tracers/testdata/calls.json | 117 +- tracers/testdata/create_inside.json | 41 +- tracers/testdata/create_oog.json | 34 +- tracers/testdata/deep.json | 1569 ++++++++++---------- tracers/testdata/insufficient_balance.json | 23 +- tracers/testdata/out_of_gas.json | 33 +- tracers/testdata/prestate_diff/calls.json | 130 ++ tracers/testdata/prestate_diff/energy.json | 74 + tracers/testdata/prestate_diff/simple.json | 93 ++ tracers/testdata/revert.json | 45 +- tracers/testdata/simple.json | 31 +- tracers/tracers_test.go | 264 +++- 16 files changed, 1687 insertions(+), 957 deletions(-) create mode 100644 tracers/testdata/call_with_log.json create mode 100644 tracers/testdata/prestate_diff/calls.json create mode 100644 tracers/testdata/prestate_diff/energy.json create mode 100644 tracers/testdata/prestate_diff/simple.json diff --git a/tracers/native/prestate.go b/tracers/native/prestate.go index a02d8af1c..48f1135ab 100644 --- a/tracers/native/prestate.go +++ b/tracers/native/prestate.go @@ -99,9 +99,8 @@ func (t *prestateTracer) CaptureStart(env *vm.EVM, from common.Address, to commo t.lookupAccount(from) t.lookupAccount(to) - // t.lookupAccount(env.Context.Coinbase) + t.lookupAccount(env.Context.Coinbase) // tracer hooks run before value transfer, no need to touch balance - if create { t.contractCreationCount++ if t.config.DiffMode { diff --git a/tracers/testdata/call.json b/tracers/testdata/call.json index 6bbe754e8..b6127fc3e 100644 --- a/tracers/testdata/call.json +++ b/tracers/testdata/call.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 3168317, + "blockID": "0x0030583d5a6f4de574510cebec5a4b11d9011b93b9df12f2985b98c1cc2da28d", + "blockTime": 1561711250, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc", "clauseIndex": 0, - "txID": "0x9de024b8b81e68afb60b110e88790b7b227e5364c87bf316eb81549199b9c9dd" + "txID": "0x9de024b8b81e68afb60b110e88790b7b227e5364c87bf316eb81549199b9c9dd", + "gas": "0x6fc38" }, "clause": { "to": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", @@ -13,11 +16,11 @@ "state": { "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc": { "balance": "0x94301095758da0e71b4d44", - "energy": "0x0" + "energy": "0x118d9e25350f0d10acc8785" }, "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1": { "balance": "0x7b55e8ffcaaa3a0000", - "energy": "0x0", + "energy": "0x5ca1012a1ec4bd900", "code": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309ca541b146100eb5780630ac9b108146101dd57806321abdf5c14610218578063470259c3146103f757806358a187ef146104225780635943b64f14610491578063874ec2e7146105835780638da5cb5b146105dc578063a330681914610633578063a82a3d89146107e6578063c55ac4a51461083d578063c6a023e9146109e4578063cfdc9bd614610a29578063d0d41fe114610a67578063da09c72c14610ab8578063f2fde38b14610b0f575b600080fd5b3480156100f757600080fd5b506101db6004803603606081101561010e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561015557600080fd5b82018360208201111561016757600080fd5b8035906020019184600183028401116401000000008311171561018957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b60565b005b3480156101e957600080fd5b506102166004803603602081101561020057600080fd5b8101908080359060200190929190505050611708565b005b34801561022457600080fd5b506103f5600480360361010081101561023c57600080fd5b81019080803560ff169060200190929190803590602001909291908035906020019064010000000081111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460018302840111640100000000831117156102a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561031b57600080fd5b82018360208201111561032d57600080fd5b8035906020019184600183028401116401000000008311171561034f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf3565b005b34801561040357600080fd5b5061040c6126bb565b6040518082815260200191505060405180910390f35b34801561042e57600080fd5b5061047b6004803603604081101561044557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c1565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104ca600480360360208110156104b457600080fd5b810190808035906020019092919050505061271f565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018667ffffffffffffffff1667ffffffffffffffff1681526020018567ffffffffffffffff1667ffffffffffffffff1681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b34801561058f57600080fd5b506105da600480360360408110156105a657600080fd5b81019080803567ffffffffffffffff169060200190929190803567ffffffffffffffff1690602001909291905050506127db565b005b3480156105e857600080fd5b506105f1612a03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063f57600080fd5b5061066c6004803603602081101561065657600080fd5b8101908080359060200190929190505050612a28565b6040518088600181111561067c57fe5b60ff16815260200187600281111561069057fe5b60ff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018567ffffffffffffffff1667ffffffffffffffff168152602001806020018467ffffffffffffffff1667ffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561073e578082015181840152602081019050610723565b50505050905090810190601f16801561076b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156107a4578082015181840152602081019050610789565b50505050905090810190601f1680156107d15780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3480156107f257600080fd5b506107fb612c8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109e2600480360360c081101561085357600080fd5b81019080803560ff1690602001909291908035906020019064010000000081111561087d57600080fd5b82018360208201111561088f57600080fd5b803590602001918460018302840111640100000000831117156108b157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561092857600080fd5b82018360208201111561093a57600080fd5b8035906020019184600183028401116401000000008311171561095c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb0565b005b3480156109f057600080fd5b50610a2760048036036040811015610a0757600080fd5b810190808035906020019092919080359060200190929190505050613350565b005b348015610a3557600080fd5b50610a6560048036036020811015610a4c57600080fd5b81019080803560ff169060200190929190505050613516565b005b348015610a7357600080fd5b50610ab660048036036020811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135fd565b005b348015610ac457600080fd5b50610acd613705565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1b57600080fd5b50610b5e60048036036020811015610b3257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061372b565b005b82426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16118015610bba575060006005600083815260200190815260200160002060060154115b1515610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8383600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610cfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e6e6f7420636c61696d207477696365000000000000000000000000000081525060200191505060405180910390fd5b600060056000888152602001908152602001600020905060008787604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051602081830303815290604052805190602001209050610d7b8187613952565b73ffffffffffffffffffffffffffffffffffffffff168260010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4543445341207369676e6174757265206973206e6f742076616c69642e00000081525060200191505060405180910390fd5b60006111df836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff166001811115610e7c57fe5b6001811115610e8757fe5b81526020016001820160019054906101000a900460ff166002811115610ea957fe5b6002811115610eb457fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050613a36565b905060018360090160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508083600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550428360090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506112ae818460060154613b3b90919063ffffffff16565b836006018190555060018360010160016101000a81548160ff021916908360028111156112d757fe5b02179055506000836006015414156113105760028360010160016101000a81548160ff0219169083600281111561130a57fe5b02179055505b6116ae836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff16600181111561134957fe5b600181111561135457fe5b81526020016001820160019054906101000a900460ff16600281111561137657fe5b600281111561138157fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ca5780601f1061149f576101008083540402835291602001916114ca565b820191906000526020600020905b8154815290600101906020018083116114ad57829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508983613b54565b8773ffffffffffffffffffffffffffffffffffffffff16897fc859311bc537fef52b70fbc36471c501efbf87e5a6e8fed2edf60453ddde3d5c836040518082815260200191505060405180910390a3505050505050505050565b80426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16111515156117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b816002808111156117c257fe5b6005600083815260200190815260200160002060010160019054906101000a900460ff1660028111156117f157fe5b14151515611867576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f696e76616c696420656e76656c6f70652069640000000000000000000000000081525060200191505060405180910390fd5b60006005600085815260200190815260200160002090506000816006015490506000826006018190555060028260010160016101000a81548160ff021916908360028111156118b257fe5b0217905550611c79826101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff1660018111156118f057fe5b60018111156118fb57fe5b81526020016001820160019054906101000a900460ff16600281111561191d57fe5b600281111561192857fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a715780601f10611a4657610100808354040283529160200191611a71565b820191906000526020600020905b815481529060010190602001808311611a5457829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611baf5780601f10611b8457610100808354040283529160200191611baf565b820191906000526020600020905b815481529060010190602001808311611b9257829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b54565b8160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16857f4dcb6e6a38d712e4e01ab60d4819c3cd51347a99d3c36d78f6e25aa2918e4133836040518082815260200191505060405180910390a35050505050565b6001548710151515611d6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002548711151515611de7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8467ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611e4b5750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168567ffffffffffffffff1611155b1515611ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8267ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611f235750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff1611155b1515611f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561203c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6000819050878173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561210f57600080fd5b505afa158015612123573d6000803e3d6000fd5b505050506040513d602081101561213957600080fd5b8101908080519060200190929190505050101515156121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6e6f2073756666696369656e7420616c6c6f77616e636500000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561229757600080fd5b505af11580156122ab573d6000803e3d6000fd5b5050505060016006600082825401925050819055506122c8614006565b60006122d9858b8d8c8c8c8c613d1a565b915091506006548260000181815250508382610120019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561236657fe5b021790555060408201518160010160016101000a81548160ff0219169083600281111561238f57fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061243e9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906124e89291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a360008111156126ae5781610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561269557600080fd5b505af11580156126a9573d6000803e3d6000fd5b505050505b5050505050505050505050565b60065481565b600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008060008060006005600089815260200190815260200160002090508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160090160009054906101000a900467ffffffffffffffff168260090160089054906101000a900467ffffffffffffffff16836005015484600601548560010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff169650965096509650965096505091939550919395565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561289f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8067ffffffffffffffff168267ffffffffffffffff161115151561292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b60008167ffffffffffffffff161115156129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600360106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080600360186101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060606000606060006005600089815260200190815260200160002060010160009054906101000a900460ff16600560008a815260200190815260200160002060010160019054906101000a900460ff16600560008b815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008c8152602001908152602001600020600301600560008d815260200190815260200160002060040160009054906101000a900467ffffffffffffffff16600560008e8152602001908152602001600020600801600560008f815260200190815260200160002060090160109054906101000a900467ffffffffffffffff16849450838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612bce5780601f10612ba357610100808354040283529160200191612bce565b820191906000526020600020905b815481529060010190602001808311612bb157829003601f168201915b50505050509350818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c6a5780601f10612c3f57610100808354040283529160200191612c6a565b820191906000526020600020905b815481529060010190602001808311612c4d57829003601f168201915b505050505091509650965096509650965096509650919395979092949650565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001543410151515612d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002543411151515612da4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8367ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612e085750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168467ffffffffffffffff1611155b1515612e7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8167ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612ee05750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168267ffffffffffffffff1611155b1515612f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ff9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6001600660008282540192505081905550613012614006565b600061302383348a8a8a8a8a613d1a565b91509150600654826000018181525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561307757fe5b021790555060408201518160010160016101000a81548160ff021916908360028111156130a057fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061314f9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906131f99291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a3600081111561334657600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613344573d6000803e3d6000fd5b505b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80821115151561348c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b600081111515613504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600181905550806002819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8060ff16600060146101000a81548161ffff021916908361ffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000806041855114151561396f5760009350505050613a30565b6020850151925060408501519150606085015160001a9050601b8160ff16101561399a57601b810190505b601b8160ff16141580156139b25750601c8160ff1614155b156139c35760009350505050613a30565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015613a20573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600080826101000151905060018361018001518461016001510367ffffffffffffffff16111515613a6a5780915050613b36565b60006001811115613a7757fe5b83602001516001811115613a8757fe5b1415613abe57613ab68361018001518461016001510367ffffffffffffffff1682613fb890919063ffffffff16565b915050613b36565b600060018461016001510367ffffffffffffffff1690506000606460148385811515613ae657fe5b0402811515613af157fe5b048284811515613afd57fe5b04600143034060019004811515613b1057fe5b06019050600081118015613b245750828111155b1515613b2f57600080fd5b8093505050505b919050565b6000828211151515613b4957fe5b818303905092915050565b60008114151515613bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1683610120015173ffffffffffffffffffffffffffffffffffffffff16141515613ccd5782610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613cb057600080fd5b505af1158015613cc4573d6000803e3d6000fd5b50505050613d15565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613d13573d6000803e3d6000fd5b505b505050565b613d22614006565b6000613d2c614006565b60008090508a826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f9574c69336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613e2457600080fd5b505afa158015613e38573d6000803e3d6000fd5b505050506040513d6020811015613e4e57600080fd5b81019080805190602001909291905050501515613eb857613ea06103e8613e92600060149054906101000a900461ffff1661ffff168d613fce90919063ffffffff16565b613fb890919063ffffffff16565b9050613eb5818b613b3b90919063ffffffff16565b99505b8882602001906001811115613ec957fe5b90816001811115613ed657fe5b8152505033826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878260a001819052508642018260c0019067ffffffffffffffff16908167ffffffffffffffff1681525050898260e00181815250508160e0015182610100018181525050858261014001819052508482610160019067ffffffffffffffff16908167ffffffffffffffff1681525050600082604001906002811115613f9357fe5b90816002811115613fa057fe5b81525050818193509350505097509795505050505050565b60008183811515613fc557fe5b04905092915050565b600080831415613fe15760009050614000565b8183029050818382811515613ff257fe5b04141515613ffc57fe5b8090505b92915050565b6101c060405190810160405280600081526020016000600181111561402757fe5b81526020016000600281111561403957fe5b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061413757805160ff1916838001178555614165565b82800160010185558215614165579182015b82811115614164578251825591602001919060010190614149565b5b5090506141729190614176565b5090565b61419891905b8082111561419457600081600090555060010161417c565b5090565b9056fea165627a7a7230582022c67dbc08de2a6090385a8a4ff29a53b67e0b9ba657901ff7e1251ccedfb4b90029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000000000000000000000000001550f7dca70000", @@ -37,9 +40,13 @@ "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc3": "0x0000000000000000000000000000000000000000000000000000000000000000" } }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b3b431de1c215c200000", + "energy": "0x9195b22d1d4cd881d87553" + }, "0xd4dac3a95c741773f093d59256a21ed6fcc768a7": { "balance": "0x0", - "energy": "0x0", + "energy": "0xd0eb742088e04a0edd0000", "code": "0x6080604052600436106102665763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301921197811461026b57806301ffc9a7146102915780630324529c146102dc57806306fdde031461030057806307fa65f91461038a578063081812fc146103ab578063095ea7b3146103df57806313e7c9d81461040357806318160ddd1461042457806319f373611461044b57806319fa8f501461046c5780631e20363a146104b357806323b872dd146104d3578063287e8495146104fd5780632ad715731461054a5780632ed9b4fd1461055f5780633f4ba83a146105a5578063417c73a7146105ba578063454a2ab3146105db5780634838d165146105e65780634a49ac4c146106075780634d4f6ea9146106285780635c975abb1461064057806360836166146106555780636352211e1461067357806368f162931461068b5780636fbde40d146106bd57806370a08231146106de57806379512513146106ff5780637aaed8991461071a5780638456cb59146107595780638da5cb5b1461076e57806395d89b411461078357806396b5a755146107985780639870d7fe146107b0578063a574cea4146107d1578063a9059cbb14610850578063ac8a584a14610874578063b03e02c214610895578063ba2a954d146108b3578063ba6f2e65146108cb578063bae3e19e146108ed578063bfc206ed1461092d578063c87b56dd14610945578063cd5967db1461095d578063d415614814610981578063e6cbe35114610996578063e729e3a4146109ab578063f2fde38b146109cc578063f7e6e60c146109ed578063f9574c6914610a02575b600080fd5b34801561027757600080fd5b5061028f600435600160a060020a0360243516610a23565b005b34801561029d57600080fd5b506102c87bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960043516610c5a565b604080519115158252519081900360200190f35b3480156102e857600080fd5b5061028f600160a060020a0360043516602435610c8e565b34801561030c57600080fd5b50610315610e14565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039657600080fd5b506102c8600160a060020a0360043516610ea2565b3480156103b757600080fd5b506103c3600435610ec5565b60408051600160a060020a039092168252519081900360200190f35b3480156103eb57600080fd5b5061028f600160a060020a0360043516602435610ee0565b34801561040f57600080fd5b506102c8600160a060020a0360043516610ffd565b34801561043057600080fd5b50610439611012565b60408051918252519081900360200190f35b34801561045757600080fd5b506102c8600160a060020a0360043516611039565b34801561047857600080fd5b50610481611089565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156104bf57600080fd5b5061028f60048035602481019101356110ad565b3480156104df57600080fd5b5061028f600160a060020a0360043581169060243516604435611109565b34801561050957600080fd5b5061051860ff6004351661137e565b6040805194855267ffffffffffffffff9384166020860152918316848301529091166060830152519081900360800190f35b34801561055657600080fd5b5061043961140c565b34801561056b57600080fd5b5061028f6004356fffffffffffffffffffffffffffffffff6024351667ffffffffffffffff60443516600160a060020a0360643516611412565b3480156105b157600080fd5b506102c8611796565b3480156105c657600080fd5b5061028f600160a060020a0360043516611895565b61028f600435611997565b3480156105f257600080fd5b506102c8600160a060020a0360043516611b5e565b34801561061357600080fd5b5061028f600160a060020a0360043516611b73565b34801561063457600080fd5b506102c8600435611c71565b34801561064c57600080fd5b506102c8611d42565b34801561066157600080fd5b5061028f60043560ff60243516611d52565b34801561067f57600080fd5b506103c3600435611f4a565b34801561069757600080fd5b506106a0611f65565b6040805167ffffffffffffffff9092168252519081900360200190f35b3480156106c957600080fd5b5061028f600160a060020a0360043516611f7c565b3480156106ea57600080fd5b50610439600160a060020a036004351661206e565b34801561070b57600080fd5b5061028f60ff60043516612090565b34801561072657600080fd5b5061028f600160a060020a036004351660ff60243516604435151567ffffffffffffffff60643581169060843516612452565b34801561076557600080fd5b506102c86126ef565b34801561077a57600080fd5b506103c36127e1565b34801561078f57600080fd5b506103156127f0565b3480156107a457600080fd5b5061028f60043561284b565b3480156107bc57600080fd5b5061028f600160a060020a0360043516612a1b565b3480156107dd57600080fd5b506107e9600435612b18565b604051600160a060020a03881681526020810187600781111561080857fe5b60ff16815295151560208701525092151560408086019190915267ffffffffffffffff92831660608601529082166080850152911660a0830152519081900360c00192509050f35b34801561085c57600080fd5b5061028f600160a060020a0360043516602435612cf5565b34801561088057600080fd5b5061028f600160a060020a0360043516612f13565b3480156108a157600080fd5b5061028f60043560ff60243516613011565b3480156108bf57600080fd5b5061028f6004356133a7565b3480156108d757600080fd5b5061028f67ffffffffffffffff600435166135a5565b3480156108f957600080fd5b5061028f6004356fffffffffffffffffffffffffffffffff6024358116906044351667ffffffffffffffff6064351661363e565b34801561093957600080fd5b506103c3600435613906565b34801561095157600080fd5b50610315600435613921565b34801561096957600080fd5b5061028f600435600160a060020a03602435166139c3565b34801561098d57600080fd5b506106a0613bfa565b3480156109a257600080fd5b506103c3613c16565b3480156109b757600080fd5b50610439600160a060020a0360043516613c25565b3480156109d857600080fd5b5061028f600160a060020a0360043516613c37565b3480156109f957600080fd5b506106a0613d30565b348015610a0e57600080fd5b506102c8600160a060020a0360043516613d40565b6000805460a060020a900460ff1615610a74576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33610a7e84611f4a565b600160a060020a031614610aca576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b610ad333611039565b1515610b17576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600354604080517f0192119700000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a03858116602483015291519190921691630192119791604480830192600092919082900301818387803b158015610b8557600080fd5b505af1158015610b99573d6000803e3d6000fd5b50506003546040805160e060020a6378bd7935028152600481018890529051600160a060020a0390921693506378bd7935925060248082019260c0929091908290030181600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b505050506040513d60c0811015610c1857600080fd5b5051604051909150600160a060020a03831690849083907f9bd63f96cf38bbd738ef415c10d8ce738b56b75bbe3b31f6bf2059d35f3a8f3a90600090a4505050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000908152600a602052604090205460ff1690565b3360009081526001602052604090205460ff161515610ce5576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b600160a060020a0382161515610d33576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60008111610d8b576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101839052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b505050505050565b600b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e9a5780601f10610e6f57610100808354040283529160200191610e9a565b820191906000526020600020905b815481529060010190602001808311610e7d57829003601f168201915b505050505081565b6000610ead82611039565b8015610ebf5750610ebd82613d40565b155b92915050565b600090815260096020526040902054600160a060020a031690565b6000805460a060020a900460ff1615610f31576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b610f3a82611f4a565b9050600160a060020a038381169082161415610fa0576040805160e560020a62461bcd02815260206004820152601d60248201527f63616e6e6f7420617070726f766520796f7572206f776e20746f6b656e000000604482015290519081900360640190fd5b33600160a060020a03821614610fee576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b610ff88284613d92565b505050565b60016020526000908152604090205460ff1681565b60065467ffffffffffffffff80821668010000000000000000909204811691909101165b90565b600160a060020a03811660009081526008602052604081205460058054839290811061106157fe5b600091825260209091200154608860020a900460ff16600781111561108257fe5b1192915050565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b600054600160a060020a031633146110fd576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b610ff8600d83836148fb565b60005460a060020a900460ff1615611159576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a03821615156111a7576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b82600160a060020a03166111ba82611f4a565b600160a060020a031614611206576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6112103382613e0a565b1515611254576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b61125d81611c71565b15156112b3576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e6e6f74207472616e73666572207468697320746f6b656e000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018490529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b15801561130457600080fd5b505af1158015611318573d6000803e3d6000fd5b505050506040513d602081101561132e57600080fd5b505115611373576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b610ff8838383613e59565b60008060008061138c614979565b6004600087600781111561139c57fe5b60ff16815260208082019290925260409081016000208151608081018352815480825260019092015467ffffffffffffffff8082169583018690526801000000000000000082048116948301859052608060020a9091041660609091018190529099929850909650945092505050565b600e5481565b60005460a060020a900460ff1615611462576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b3361146c85611f4a565b600160a060020a0316146114b8576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6114c133611039565b1515611505576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600580548590811061151357fe5b600091825260209091200154608060020a900460ff161561157e576040805160e560020a62461bcd02815260206004820152601660248201527f63616e63656c20757067726164696e6720666972737400000000000000000000604482015290519081900360640190fd5b600354611595908590600160a060020a0316613d92565b600e546115a990600163ffffffff613e6e16565b600e819055600354604080517fe4f9dd2d0000000000000000000000000000000000000000000000000000000081526004810193909352602483018790526fffffffffffffffffffffffffffffffff861660448401819052606484015267ffffffffffffffff8086166084850152421660a48401523360c484015251600160a060020a039091169163e4f9dd2d9160e480830192600092919082900301818387803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b5050600e54604080516fffffffffffffffffffffffffffffffff8816808252602082015267ffffffffffffffff87168183015290518894509192507f50417882ac38f5bd0dd968f4b17f72ab38a7bd228eeec270f01466a5724684b4919081900360600190a3600354604080517fcd5967db00000000000000000000000000000000000000000000000000000000815260048101879052600160a060020a0384811660248301529151919092169163cd5967db91604480830192600092919082900301818387803b15801561173f57600080fd5b505af1158015611753573d6000803e3d6000fd5b5050600e54604051600160a060020a03851693508792507fc42e7df8c9dcd26c4a8b5134e17fa2481ababcb828e3b316b89b63c57b61f3b890600090a450505050565b60008054600160a060020a031633146117e7576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16151561184a576040805160e560020a62461bcd02815260206004820152601560248201527f6e656564732070726f746f636f6c207061757365640000000000000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a150600190565b600054600160a060020a031633146118e5576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611935576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a038116600081815260026020908152604091829020805460ff1916600190811790915582519384529083015280517f0baadf7b35b83c7d3a00874b5406dca58c60d0ff7d8c825ad02ec55484beb4559281900390910190a150565b600080548190819060a060020a900460ff16156119ec576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b6003546040805160e060020a6378bd7935028152600481018790529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b158015611a3d57600080fd5b505af1158015611a51573d6000803e3d6000fd5b505050506040513d60c0811015611a6757600080fd5b508051602091820151600354604080517f59d667a5000000000000000000000000000000000000000000000000000000008152336004820152602481018a90529051939750919550600160a060020a0316926359d667a5923492604480820193929182900301818588803b158015611ade57600080fd5b505af1158015611af2573d6000803e3d6000fd5b50505050506040513d6020811015611b0957600080fd5b505160408051338152602081018390528151929350600160a060020a03851692879287927fc2a394cb356728b3540b84dee72ea6de41f44fd94de223565258efe1549ee06f929081900390910190a450505050565b60026020526000908152604090205460ff1681565b600054600160a060020a03163314611bc3576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611c13576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0381166000818152600260209081526040808320805460ff1916905580519384529083019190915280517f0baadf7b35b83c7d3a00874b5406dca58c60d0ff7d8c825ad02ec55484beb4559281900390910190a150565b6000611c7c82613ec9565b8015611ca957506005805483908110611c9157fe5b600091825260209091200154608060020a900460ff16155b8015611cda5750600082815260076020908152604080832054600160a060020a03168352600290915290205460ff16155b8015610ebf5750600360149054906101000a900467ffffffffffffffff16600583815481101515611d0757fe5b60009182526020909120015467ffffffffffffffff720100000000000000000000000000000000000090910481169190910116421192915050565b60005460a060020a900460ff1681565b3360009081526001602052604090205460ff161515611da9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b806007811115611db557fe5b6005805484908110611dc357fe5b600091825260209091200154608860020a900460ff166007811115611de457fe5b10611e39576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c6964206c6576656c00000000000000000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018590529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b158015611e8a57600080fd5b505af1158015611e9e573d6000803e3d6000fd5b505050506040513d6020811015611eb457600080fd5b505115611ef9576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b6000600583815481101515611f0a57fe5b60009182526020909120018054911515608060020a0270ff0000000000000000000000000000000019909216919091179055611f468282613ee5565b5050565b600090815260076020526040902054600160a060020a031690565b60035460a060020a900467ffffffffffffffff1681565b600054600160a060020a03163314611fcc576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b600160a060020a038116151561201a576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60038054600160a060020a038316600160a060020a0319909116811790915560408051918252517fb69d08e828d243d599db935e2be5ce7ed7b0d2f9c9f712ff469a10a27924deb89181900360200190a150565b600061207982611039565b612084576000612087565b60015b60ff1692915050565b60008054819060a060020a900460ff16156120e3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33600090815260086020526040902054915081151561210b576121083360008061419d565b91505b600580548390811061211957fe5b60009182526020909120018054909150608060020a900460ff1615612188576040805160e560020a62461bcd02815260206004820152600f60248201527f7374696c6c20757067726164696e670000000000000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018590529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b1580156121d957600080fd5b505af11580156121ed573d6000803e3d6000fd5b505050506040513d602081101561220357600080fd5b505115612248576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b82600781111561225457fe5b815460ff91821691608860020a90910416600781111561227057fe5b60010160ff1614801561228f5750600483600781111561228c57fe5b14155b80156122a7575060078360078111156122a457fe5b11155b15156122fd576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c6964205f746f4c766c000000000000000000000000000000000000604482015290519081900360640190fd5b6004600084600781111561230d57fe5b60ff16815260208101919091526040016000205433311015612379576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b8054608060020a70ff0000000000000000000000000000000019909116176fffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff811691909102919091178255604051339184917fe925483a08461d851abfcfd476ed282a68d87b23cc45add5a8dc7f1ad7825ce991879143908084600781111561240457fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff168152602001935050505060405180910390a3505050565b3360009081526001602052604081205460ff1615156124a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6124b2866143a1565b15612507576040805160e560020a62461bcd02815260206004820152601860248201527f796f7520616c726561647920686f6c64206120746f6b656e0000000000000000604482015290519081900360640190fd5b6004600086600781111561251757fe5b60ff168152602081019190915260400160002054600160a060020a03871631101561258c576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b61259786868661419d565b90508460078111156125a557fe5b6001111580156125c1575060038560078111156125be57fe5b11155b156125ef576006805467ffffffffffffffff8082166001011667ffffffffffffffff19909116179055612659565b8460078111156125fb57fe5b6004111580156126175750600785600781111561261457fe5b11155b156126595760068054600167ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b8315610e0c5785600160a060020a0316817fe925483a08461d851abfcfd476ed282a68d87b23cc45add5a8dc7f1ad7825ce98786866040518084600781111561269e57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff168152602001935050505060405180910390a3505050505050565b60008054600160a060020a03163314612740576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612790576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a150600190565b600054600160a060020a031681565b600c805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e9a5780601f10610e6f57610100808354040283529160200191610e9a565b6000805460a060020a900460ff161561289c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b336128a683611f4a565b600160a060020a0316146128f2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b60035461290890600160a060020a0316836143bd565b6003546040805160e060020a6378bd7935028152600481018590529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b15801561295957600080fd5b505af115801561296d573d6000803e3d6000fd5b505050506040513d60c081101561298357600080fd5b5051604051909150829082907fdb9cc99dc874f9afbae71151f737e51547d3d412b52922793437d86607050c3c90600090a3600354604080517f96b5a755000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03909216916396b5a7559160248082019260009290919082900301818387803b158015610df857600080fd5b600054600160a060020a03163314612a6b576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612abb576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a038116600081815260016020818152604092839020805460ff191683179055825193845283015280517f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d9281900390910190a150565b6000806000806000806000612b2b6149a0565b612b3489613ec9565b15612ce957600580548a908110612b4757fe5b60009182526020918290206040805160a08101825291909201805467ffffffffffffffff8082168452680100000000000000008204169483019490945260ff608060020a85048116151593830193909352909290916060840191608860020a9004166007811115612bb457fe5b6007811115612bbf57fe5b81526020016000820160129054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600760008a815260200190815260200160002060009054906101000a9004600160a060020a031681606001518260400151600360009054906101000a9004600160a060020a0316600160a060020a03166337e246ad8d6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612c9f57600080fd5b505af1158015612cb3573d6000803e3d6000fd5b505050506040513d6020811015612cc957600080fd5b5051608085015185516020870151959d50939b5091995097509550935091505b50919395979092949650565b60005460a060020a900460ff1615612d45576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0382161515612d93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b33612d9d82611f4a565b600160a060020a031614612de9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b612df281611c71565b1515612e48576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e6e6f74207472616e73666572207468697320746f6b656e000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018490529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b158015612e9957600080fd5b505af1158015612ead573d6000803e3d6000fd5b505050506040513d6020811015612ec357600080fd5b505115612f08576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b611f46338383614412565b600054600160a060020a03163314612f63576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612fb3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0381166000818152600160209081526040808320805460ff1916905580519384529083019190915280517f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d9281900390910190a150565b3360009081526001602052604081205460ff161515613068576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b81600781111561307457fe5b600580548590811061308257fe5b600091825260209091200154608860020a900460ff1660078111156130a357fe5b116130f8576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c6964206c6576656c00000000000000000000000000000000000000604482015290519081900360640190fd5b600360149054906101000a900467ffffffffffffffff1660058481548110151561311e57fe5b60009182526020909120015467ffffffffffffffff72010000000000000000000000000000000000009091048116919091011642116131a7576040805160e560020a62461bcd02815260206004820152601460248201527f746f6b656e206973206f6e20636f6f6c646f776e000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018690529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b1580156131f857600080fd5b505af115801561320c573d6000803e3d6000fd5b505050506040513d602081101561322257600080fd5b50511561336b5760035461323f90600160a060020a0316846143bd565b6003546040805160e060020a6378bd7935028152600481018690529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b15801561329057600080fd5b505af11580156132a4573d6000803e3d6000fd5b505050506040513d60c08110156132ba57600080fd5b5051604051909150839082907fdb9cc99dc874f9afbae71151f737e51547d3d412b52922793437d86607050c3c90600090a3600354604080517f96b5a755000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a03909216916396b5a7559160248082019260009290919082900301818387803b15801561335257600080fd5b505af1158015613366573d6000803e3d6000fd5b505050505b600580548490811061337957fe5b600091825260209091200154608060020a900460ff161561339d5761339d836133a7565b610ff88383613ee5565b6000806133b383613ec9565b1515613409576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e206e6f742065786973740000000000000000000000000000000000604482015290519081900360640190fd5b600580548490811061341757fe5b60009182526020808320868452600790915260409092205491018054909350600160a060020a039091169150608060020a900460ff1615156134a3576040805160e560020a62461bcd02815260206004820152601060248201527f6e6f74206f6e20757067726164696e6700000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381163314806134c957503360009081526001602052604090205460ff165b151561350d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b60008254608860020a900460ff16600781111561352657fe5b141561353a57613535836145eb565b61356a565b815470ffffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff16021782555b604051600160a060020a0382169084907fddc99f00cc50e9442de66784f25bd218c8c63f4c4103b817692da0a63fb80a9690600090a3505050565b3360009081526001602052604090205460ff1615156135fc576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6003805467ffffffffffffffff90921660a060020a027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60005460a060020a900460ff161561368e576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b3361369885611f4a565b600160a060020a0316146136e4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6136ed33611039565b1515613731576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600580548590811061373f57fe5b600091825260209091200154608060020a900460ff16156137aa576040805160e560020a62461bcd02815260206004820152601660248201527f63616e63656c20757067726164696e6720666972737400000000000000000000604482015290519081900360640190fd5b6003546137c1908590600160a060020a0316613d92565b600e546137d590600163ffffffff613e6e16565b600e819055600354604080517fe4f9dd2d0000000000000000000000000000000000000000000000000000000081526004810193909352602483018790526fffffffffffffffffffffffffffffffff80871660448501528516606484015267ffffffffffffffff8085166084850152421660a48401523360c484015251600160a060020a039091169163e4f9dd2d9160e480830192600092919082900301818387803b15801561388457600080fd5b505af1158015613898573d6000803e3d6000fd5b5050600e54604080516fffffffffffffffffffffffffffffffff80891682528716602082015267ffffffffffffffff86168183015290518894509192507f50417882ac38f5bd0dd968f4b17f72ab38a7bd228eeec270f01466a5724684b4919081900360600190a350505050565b600760205260009081526040902054600160a060020a031681565b600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152606093610ebf93919290918301828280156139b05780601f10613985576101008083540402835291602001916139b0565b820191906000526020600020905b81548152906001019060200180831161399357829003601f168201915b50505050506139be84614696565b6147a4565b6000805460a060020a900460ff1615613a14576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33613a1e84611f4a565b600160a060020a031614613a6a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b613a7333611039565b1515613ab7576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600354604080517fcd5967db00000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a0385811660248301529151919092169163cd5967db91604480830192600092919082900301818387803b158015613b2557600080fd5b505af1158015613b39573d6000803e3d6000fd5b50506003546040805160e060020a6378bd7935028152600481018890529051600160a060020a0390921693506378bd7935925060248082019260c0929091908290030181600087803b158015613b8e57600080fd5b505af1158015613ba2573d6000803e3d6000fd5b505050506040513d60c0811015613bb857600080fd5b5051604051909150600160a060020a03831690849083907fc42e7df8c9dcd26c4a8b5134e17fa2481ababcb828e3b316b89b63c57b61f3b890600090a4505050565b60065468010000000000000000900467ffffffffffffffff1681565b600354600160a060020a031681565b60086020526000908152604090205481565b600054600160a060020a03163314613c87576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b600160a060020a0381161515613cd5576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600160a060020a031916600160a060020a0392909216919091179055565b60065467ffffffffffffffff1681565b600160a060020a03811660009081526008602052604081205460058054600492908110613d6957fe5b600091825260209091200154608860020a900460ff166007811115613d8a57fe5b101592915050565b60008281526009602052604081208054600160a060020a031916600160a060020a038416179055613dc283611f4a565b90508282600160a060020a031682600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600080613e1683611f4a565b905080600160a060020a031684600160a060020a03161480613e51575083600160a060020a0316613e4684610ec5565b600160a060020a0316145b949350505050565b613e6383826143bd565b610ff8838383614412565b81810182811015610ebf576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b600090815260076020526040812054600160a060020a03161190565b60008281526007602052604081205460058054600160a060020a03909216929182919086908110613f1257fe5b600091825260208220018054909350608860020a900460ff169150846007811115613f3957fe5b1415613f4d57613f48856145eb565b613fad565b81548490839071ff00000000000000000000000000000000001916608860020a836007811115613f7957fe5b021790555081546fffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff16021782555b806007811115613fb957fe5b600111158015613fd557506003816007811115613fd257fe5b11155b15614005576006805467ffffffffffffffff19811667ffffffffffffffff91821660001901909116179055614070565b80600781111561401157fe5b60041115801561402d5750600781600781111561402a57fe5b11155b15614070576006805460001967ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b83600781111561407c57fe5b6001111580156140985750600384600781111561409557fe5b11155b156140c6576006805467ffffffffffffffff8082166001011667ffffffffffffffff19909116179055614130565b8360078111156140d257fe5b6004111580156140ee575060078460078111156140eb57fe5b11155b156141305760068054600167ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b82600160a060020a0316857fb6fd4b2356bc13ccc82da8b790e9bf9bdcfd4743d32dd10aa48189ec53f6bc0083876040518083600781111561416e57fe5b60ff16815260200182600781111561418257fe5b60ff1681526020019250505060405180910390a35050505050565b60006141a76149a0565b600060a0604051908101604052804267ffffffffffffffff1681526020014267ffffffffffffffff16815260200185151581526020018660078111156141e957fe5b815267ffffffffffffffff42811660209283015260058054600181810180845560009390935285517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090920180549587015160408801511515608060020a0270ff000000000000000000000000000000001991871668010000000000000000026fffffffffffffffff0000000000000000199590971667ffffffffffffffff19909816979097179390931694909417919091169390931780835560608501519496509293909286929190829071ff00000000000000000000000000000000001916608860020a8360078111156142db57fe5b021790555060809190910151815467ffffffffffffffff90911672010000000000000000000000000000000000000279ffffffffffffffff00000000000000000000000000000000000019909116179055600160a060020a03881660008181526008602090815260408083209590940394859055848252600790528281208054600160a060020a03191683179055915192935083929091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a495945050505050565b600160a060020a03166000908152600860205260408120541190565b6000818152600960205260408082208054600160a060020a031916905551829190600160a060020a038516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908390a45050565b61441b826143a1565b15614470576040805160e560020a62461bcd02815260206004820152601860248201527f5f746f20616c726561647920686f6c64206120746f6b656e0000000000000000604482015290519081900360640190fd5b614479826148f3565b156144ce576040805160e560020a62461bcd02815260206004820152601660248201527f5f746f206d7573746e2774206120636f6e747261637400000000000000000000604482015290519081900360640190fd5b426005828154811015156144de57fe5b9060005260206000200160000160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055504260058281548110151561452157fe5b60009182526020808320909101805467ffffffffffffffff9490941672010000000000000000000000000000000000000279ffffffffffffffff0000000000000000000000000000000000001990941693909317909255600160a060020a0380861680835260088085526040808520859055868552600786528085208054948916600160a060020a03199095168517905583855294528383208590559251849391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008181526007602090815260408083208054600160a060020a03198116909155600160a060020a03168084526008909252822091909155600580548390811061463157fe5b60009182526020822001805479ffffffffffffffffffffffffffffffffffffffffffffffffffff19169055604051839190600160a060020a038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060008082818515156146df5760408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152945061479b565b8593505b83156146fa57600190920191600a840493506146e3565b859350826040519080825280601f01601f19166020018201604052801561472b578160200160208202803883390190505b5091505060001982015b831561479757815160001982019160f860020a6030600a8806010291849190811061475c57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350614735565b8194505b50505050919050565b606080606080606060008088955087945084518651016040519080825280601f01601f1916602001820160405280156147e7578160200160208202803883390190505b50935083925060009150600090505b855181101561486c57858181518110151561480d57fe5b90602001015160f860020a900460f860020a02838380600101945081518110151561483457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016147f6565b5060005b84518110156148e657848181518110151561488757fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156148ae57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101614870565b5090979650505050505050565b6000903b1190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061493c5782800160ff19823516178555614969565b82800160010185558215614969579182015b8281111561496957823582559160200191906001019061494e565b506149759291506149cf565b5090565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a0810182526000808252602082018190529181018290529060608201908152600060209091015290565b61103691905b8082111561497557600081556001016149d5560070726f746f636f6c206861732070617573656400000000000000000000000000696e76616c6964206164647265737300000000000000000000000000000000006f6e6c79206f776e65720000000000000000000000000000000000000000000063616e63656c2061756374696f6e2066697273740000000000000000000000007065726d697373696f6e2064656e6965640000000000000000000000000000006973206e6f74206120746f6b656e000000000000000000000000000000000000a165627a7a72305820614408d6b8cb8ec89a81a4a01cb1424113af0ea8b7211d7ba20233cfba32f68c0029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000000000000000000000000000000000000000000d6", @@ -49,23 +56,23 @@ } }, "calls": { - "type": "CALL", "from": "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc", - "to": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", - "value": "0x8ac7230489e80000", "gas": "0x6fc38", "gasUsed": "0x2fb97", + "to": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", "input": "0xc55ac4a5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000001a642015b3737c5e97978f4cf2bd1a27dd5a24d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "calls": [ { - "type": "STATICCALL", "from": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", - "to": "0xd4dac3a95c741773f093d59256a21ed6fcc768a7", "gas": "0x6b4e4", "gasUsed": "0x919", + "to": "0xd4dac3a95c741773f093d59256a21ed6fcc768a7", "input": "0xf9574c69000000000000000000000000048ac268f5818b7ade95f6828ad1e769c1d51bdc", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "type": "STATICCALL" } - ] + ], + "value": "0x8ac7230489e80000", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/testdata/call_only_top.json b/tracers/testdata/call_only_top.json index aaeda5e3e..1da8da019 100644 --- a/tracers/testdata/call_only_top.json +++ b/tracers/testdata/call_only_top.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 15490, + "blockID": "0x00003c82567d8e90d05704f600ced34e9b9f7ac3091631a5c50fae032c883b7d", + "blockTime": 1530169300, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed", "clauseIndex": 0, - "txID": "0x206a05ff2db3f86cd9cbdc09f26ea715b21ce5286290c01a78fbc2c240c5d51e" + "txID": "0x206a05ff2db3f86cd9cbdc09f26ea715b21ce5286290c01a78fbc2c240c5d51e", + "gas": "0x20df56" }, "clause": { "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", @@ -13,28 +16,32 @@ "state": { "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed": { "balance": "0x152d02c7e14af6800000", - "energy":"0x0" + "energy": "0xd27689432b2c80f80000" }, "0xa1118c817b44c2ad154229a34f00b1af5ba48394": { "balance": "0x0", - "energy":"0x0", + "energy": "0x0", "code": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063967e6e651461005c578063f518904814610087578063f9ea5e79146100ca575b600080fd5b34801561006857600080fd5b50610071610151565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015a565b005b3480156100d657600080fd5b5061013b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506101df565b6040518082815260200191505060405180910390f35b60008054905090565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663416ad2b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156101c357600080fd5b505af11580156101d7573d6000803e3d6000fd5b505050505050565b600080600081546001019190508190559050929150505600a165627a7a7230582072a3a4f41df2e25405f0df2b19c07fa43c91df02a01d7ad7a66bf7deed99c6860029" }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14adf4b7320334b9000000", + "energy": "0x45cf317c0611a2638fe" + }, "0xd73a9b349dc06b12301d5968ac333f69d112841a": { "balance": "0x0", - "energy":"0x0", + "energy": "0x0", "code": "0x608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063416ad2b51461007d578063a92100cb14610094578063d11f17ad146100ab578063d9f51ebf14610106578063f8a8fd6d1461016f578063fc32d7371461019a575b600080fd5b34801561008957600080fd5b506100926101b1565b005b3480156100a057600080fd5b506100a9610285565b005b3480156100b757600080fd5b506100ec600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102b3565b604051808215151515815260200191505060405180910390f35b34801561011257600080fd5b5061011b6103a5565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561017b57600080fd5b506101846103e7565b6040518082815260200191505060405180910390f35b3480156101a657600080fd5b506101af6103f5565b005b60008073a1118c817b44c2ad154229a34f00b1af5ba4839491508190508073ffffffffffffffffffffffffffffffffffffffff1663f5189048306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561026957600080fd5b505af115801561027d573d6000803e3d6000fd5b505050505050565b60008090505b60648110156102b057600a818115156102a057fe5b069050808060010191505061028b565b50565b60008060405180807f696e63726561736541676528737472696e672c75696e74323536290000000000815250601b019050604051809103902090508273ffffffffffffffffffffffffffffffffffffffff16817c0100000000000000000000000000000000000000000000000000000000900460016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180807f6a61636b000000000000000000000000000000000000000000000000000000008152506020018260ff1681526020019150506000604051808303816000875af192505050915050919050565b60008033905060405180807f696e63726561736541676528737472696e672c75696e74323536290000000000815250601b019050604051809103902091505090565b600080606490508091505090565b6103fd6103f5565b5600a165627a7a723058203554e9ce6726c60f2bf8e3d902a21ffdf86dde6478513a220ef475b6cbc104060029" } }, "calls": { - "type": "CALL", "from": "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x20df56", "gasUsed": "0x529af", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", - "error": "execution reverted" + "error": "execution reverted", + "value": "0x0", + "type": "CALL" }, "config":{ "onlyTopCall": true diff --git a/tracers/testdata/call_with_log.json b/tracers/testdata/call_with_log.json new file mode 100644 index 000000000..77c39a0db --- /dev/null +++ b/tracers/testdata/call_with_log.json @@ -0,0 +1,131 @@ +{ + "context": { + "blockID": "0x001af795f943431e8ece925274e04d651a5cc774500f0767fb4cfac684b28528", + "blockTime": 1547695710, + "beneficiary": "0x3ded060b718e06118ca2c8c5142f106eed5f1063", + "txOrigin": "0xf6e78a5584c06e2dec5c675d357f050a5402a730", + "clauseIndex": 0, + "txID": "0xa5d753aff9574eacddd329a713f197d496da62a3d78dd558a10d2d5a50e0c892", + "gas": "0x9ed7" + }, + "clause": { + "to": "0xd015d91b42bed5feaf242082b11b83b431abbf4f", + "value": "0xde0b6b3a7640000", + "data": "0xab23bfb50000000000000000000000000000000000000000000000008731ea11815ba83f" + }, + "state": { + "0x0000000000000000000000000000456e65726779": { + "balance": "0x0", + "energy": "0x29a2241af62c0001", + "code": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce5671461025957806370a082311461028a57806395d89b41146102e1578063a9059cbb14610371578063bb35783b146103d6578063d89135cd1461045b578063dd62ed3e14610486575b600080fd5b3480156100c057600080fd5b506100c96104fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061053a565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be61062b565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106d1565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610865565b604051808260ff1660ff16815260200191505060405180910390f35b34801561029657600080fd5b506102cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086e565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b506102f661094d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033657808201518184015260208101905061031b565b50505050905090810190601f1680156103635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037d57600080fd5b506103bc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061098a565b604051808215151515815260200191505060405180910390f35b3480156103e257600080fd5b50610441600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109a1565b604051808215151515815260200191505060405180910390f35b34801561046757600080fd5b50610470610b67565b6040518082815260200191505060405180910390f35b34801561049257600080fd5b506104e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c0d565b6040518082815260200191505060405180910390f35b60606040805190810160405280600681526020017f566554686f720000000000000000000000000000000000000000000000000000815250905090565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1663592b389c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b505050506040513d60208110156106bb57600080fd5b8101908080519060200190929190505050905090565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156107c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6275696c74696e3a20696e73756666696369656e7420616c6c6f77616e63650081525060200191505060405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061085a848484610c93565b600190509392505050565b60006012905090565b60003073ffffffffffffffffffffffffffffffffffffffff1663ee660480836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561090b57600080fd5b505af115801561091f573d6000803e3d6000fd5b505050506040513d602081101561093557600080fd5b81019080805190602001909291905050509050919050565b60606040805190810160405280600481526020017f5654484f00000000000000000000000000000000000000000000000000000000815250905090565b6000610997338484610c93565b6001905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610add57503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1663059950e9866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a8a57600080fd5b505af1158015610a9e573d6000803e3d6000fd5b505050506040513d6020811015610ab457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b1515610b51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6275696c74696e3a2073656c66206f72206d617374657220726571756972656481525060200191505060405180910390fd5b610b5c848484610c93565b600190509392505050565b60003073ffffffffffffffffffffffffffffffffffffffff1663138d4d0c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610bcd57600080fd5b505af1158015610be1573d6000803e3d6000fd5b505050506040513d6020811015610bf757600080fd5b8101908080519060200190929190505050905090565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000811115610eaa573073ffffffffffffffffffffffffffffffffffffffff166339ed08d584836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d3f57600080fd5b505af1158015610d53573d6000803e3d6000fd5b505050506040513d6020811015610d6957600080fd5b81019080805190602001909291905050501515610dee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6275696c74696e3a20696e73756666696369656e742062616c616e636500000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16631cedfac183836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e9157600080fd5b505af1158015610ea5573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505600a165627a7a72305820bd55cb9aff347dc60fe8280ae6b08a6f6deacc85a4e1c89ba0a8ef31fbcaecc60029" + }, + "0x3ded060b718e06118ca2c8c5142f106eed5f1063": { + "balance": "0x0", + "energy": "0x6c06e6b77a252fe6a24bf" + }, + "0xd015d91b42bed5feaf242082b11b83b431abbf4f": { + "balance": "0xd3e7c83a3e7444c7394f", + "energy": "0x8498047bc2d73a58283b4", + "code": "0x60806040526004361061018a5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630a655e25811461018f5780631343d734146101a9578063261befa0146101d35780632646f486146101e857806336373513146102195780634191c4171461024e5780634209fff11461026f578063421b2d8b146102905780634524bd6f146102b15780634ec7fb81146102cc578063579cd3ca146102e15780635aeb43ce1461030f5780635dde8ff61461031757806361414aae1461032f578063647eecff1461035d57806379ba50971461037557806380100aa31461038a5780638c87895d146103a45780638da5cb5b146103d55780638f5f2846146103ea578063959499b61461040b5780639857518814610420578063ab23bfb514610441578063bf7545581461044c578063c511ed5e14610461578063c993154d14610476578063d043540a14610497578063d4ee1d90146104b2578063e08fe144146104c7578063ecbca55d146104e8578063f2fde38b14610506575b600080fd5b34801561019b57600080fd5b506101a7600435610527565b005b3480156101b557600080fd5b506101c160043561076c565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161087e565b3480156101f457600080fd5b506101fd610884565b60408051600160a060020a039092168252519081900360200190f35b34801561022557600080fd5b5061023a600160a060020a0360043516610894565b604080519115158252519081900360200190f35b34801561025a57600080fd5b506101c1600160a060020a03600435166108ac565b34801561027b57600080fd5b5061023a600160a060020a03600435166108be565b34801561029c57600080fd5b506101a7600160a060020a03600435166108d0565b3480156102bd57600080fd5b506101a76004356024356108fd565b3480156102d857600080fd5b506101fd61092c565b3480156102ed57600080fd5b506102f661093b565b6040805163ffffffff9092168252519081900360200190f35b6101a761095f565b34801561032357600080fd5b506101c1600435610a13565b34801561033b57600080fd5b50610344610a64565b6040805192835260208301919091528051918290030190f35b34801561036957600080fd5b506101c1600435610a78565b34801561038157600080fd5b506101a7610b7b565b34801561039657600080fd5b506101a76004351515610c62565b3480156103b057600080fd5b506103b9610cc4565b604080516001606860020a039092168252519081900360200190f35b3480156103e157600080fd5b506101fd610cd3565b3480156103f657600080fd5b506101a7600160a060020a0360043516610cde565b34801561041757600080fd5b506101a7610d0a565b34801561042c57600080fd5b506101a7600160a060020a036004351661101b565b6101c1600435611045565b34801561045857600080fd5b5061023a611444565b34801561046d57600080fd5b506101a7611469565b34801561048257600080fd5b506101a7600160a060020a0360043516611486565b3480156104a357600080fd5b506101c16004356024356114b2565b3480156104be57600080fd5b506101fd611852565b3480156104d357600080fd5b506101a7600160a060020a0360043516611861565b3480156104f457600080fd5b506101a763ffffffff6004351661188b565b34801561051257600080fd5b506101a7600160a060020a03600435166119bf565b61053030611a73565b600160a060020a0316331461054157fe5b600154604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518392600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156105ac57600080fd5b505af11580156105c0573d6000803e3d6000fd5b505050506040513d60208110156105d657600080fd5b50511015610654576040805160e560020a62461bcd02815260206004820152602960248201527f4d75737420686176652073657420616c6c6f77616e636520666f72207468697360448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156106c757600080fd5b505af11580156106db573d6000803e3d6000fd5b505050506040513d60208110156106f157600080fd5b50511515610749576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b61075d61075860035483611b12565b611b28565b6001606860020a031660035550565b6000808083116107ec576040805160e560020a62461bcd02815260206004820152602360248201527f4d757374206861766520616d6f756e742073657420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60035460025461080691906001606860020a031685611b40565b905061081181610a13565b6002549092506001606860020a03168210610878576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b50919050565b60035481565b600061088f30611b82565b905090565b60006108a6308363ffffffff611bef16565b92915050565b60006108a6308363ffffffff611c9716565b60006108a6308363ffffffff611d0c16565b6108d930611a73565b600160a060020a031633146108ea57fe5b6108fa308263ffffffff611d8116565b50565b61090630611a73565b600160a060020a0316331461091757fe5b61092830838363ffffffff611e0e16565b5050565b600154600160a060020a031681565b60015474010000000000000000000000000000000000000000900463ffffffff1681565b61096830611a73565b600160a060020a0316331461097957fe5b600034116109d1576040805160e560020a62461bcd02815260206004820152601260248201527f4d7573742068617665207665742073656e740000000000000000000000000000604482015290519081900360640190fd5b6002546109eb90610758906001606860020a031634611b12565b600280546cffffffffffffffffffffffffff19166001606860020a0392909216919091179055565b600154600090620f424090610a5490849063ffffffff7401000000000000000000000000000000000000000090910416830367ffffffffffffffff16611ea2565b811515610a5d57fe5b0492915050565b600080610a7030611ec6565b915091509091565b600080808311610af8576040805160e560020a62461bcd02815260206004820152602360248201527f4d757374206861766520616d6f756e742073657420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600354610b12916001606860020a03169085611b40565b9050610b1d81610a13565b6003549092508210610878576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600054600160a060020a03163314610bdd576040805160e560020a62461bcd02815260206004820152601c60248201527f73656e646572206d75737420626520746865206e6577206f776e657200000000604482015290519081900360640190fd5b600054600160a060020a0316610bf1610cd3565b600160a060020a03167f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a60405160405180910390a3600054610c43903090600160a060020a031663ffffffff611f6f16565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b610c6b30611a73565b600160a060020a03163314610c7c57fe5b6001805491151578010000000000000000000000000000000000000000000000000278ff00000000000000000000000000000000000000000000000019909216919091179055565b6002546001606860020a031681565b600061088f30611a73565b610ce730611a73565b600160a060020a03163314610cf857fe5b6108fa81600160a060020a0316611fe0565b6000610d1530611a73565b600160a060020a03163314610d2657fe5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d8c57600080fd5b505af1158015610da0573d6000803e3d6000fd5b505050506040513d6020811015610db657600080fd5b50516003549091508111610e3a576040805160e560020a62461bcd02815260206004820152603060248201527f666174616c3a20656e657267792062616c616e6365206c6f776572207468616e60448201527f207669727475616c2062616c616e636500000000000000000000000000000000606482015290519081900360840190fd5b6002546001606860020a0316303111610ec3576040805160e560020a62461bcd02815260206004820152602d60248201527f666174616c3a207665742062616c616e6365206c6f776572207468616e20766960448201527f727475616c2062616c616e636500000000000000000000000000000000000000606482015290519081900360840190fd5b600154600354600160a060020a039091169063a9059cbb903390610ee8908590612064565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f5357600080fd5b505af1158015610f67573d6000803e3d6000fd5b505050506040513d6020811015610f7d57600080fd5b50511515610fd5576040805160e560020a62461bcd02815260206004820152601660248201527f7472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b60025433906108fc90610ff3903031906001606860020a0316612064565b6040518115909202916000818181858888f19350505050158015610928573d6000803e3d6000fd5b61102430611a73565b600160a060020a0316331461103557fe5b6108fa308263ffffffff61207616565b600080600080600080600160189054906101000a900460ff1615156110b4576040805160e560020a62461bcd02815260206004820152601d60248201527f636f6e76657273696f6e2069732064697361626c6564206279206e6f77000000604482015290519081900360640190fd5b60003411611132576040805160e560020a62461bcd02815260206004820152602160248201527f4d7573742068617665207665742073656e7420666f7220636f6e76657273696f60448201527f6e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051349750600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561119b57600080fd5b505af11580156111af573d6000803e3d6000fd5b505050506040513d60208110156111c557600080fd5b50516002546003549195506111e6916001606860020a039091169087611b40565b92506111f183610a13565b91505080820381158015906112065750868210155b151561125c576040805160e560020a62461bcd02815260206004820152601860248201527f496e76616c696420636f6e76657274656420616d6f756e740000000000000000604482015290519081900360640190fd5b8382106112b5576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561132257600080fd5b505af1158015611336573d6000803e3d6000fd5b505050506040513d602081101561134c57600080fd5b505115156113a4576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b6002546113be90610758906001606860020a031687611b12565b600280546cffffffffffffffffffffffffff19166001606860020a03929092169190911790556003546113f19084612064565b6003556040805186815260208101849052808201839052905133916000917ffba23a36f0fad77947f553b9a89c1848ac869c8ce4c1c0d93cb14a9f4ba107f49181900360600190a3509095945050505050565b6001547801000000000000000000000000000000000000000000000000900460ff1681565b61147230611a73565b600160a060020a0316331461148357fe5b33ff5b61148f30611a73565b600160a060020a031633146114a057fe5b6108fa81600160a060020a03166120e7565b600080600080600160189054906101000a900460ff16151561151e576040805160e560020a62461bcd02815260206004820152601d60248201527f636f6e76657273696f6e2069732064697361626c6564206279206e6f77000000604482015290519081900360640190fd5b6000861161159c576040805160e560020a62461bcd02815260206004820152602360248201527f4d75737420686176652073657420616d6f756e7420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003546002546115b691906001606860020a031688611b40565b92506115c183610a13565b91505080820381158015906115d65750848210155b151561162c576040805160e560020a62461bcd02815260206004820152601860248201527f496e76616c696420636f6e76657274656420616d6f756e740000000000000000604482015290519081900360640190fd5b6002546001606860020a03168210611690576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018990529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b50511515611785576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b604051339083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b506117bf60035487611b12565b6003556002546117dc90610758906001606860020a031685612064565b600280546cffffffffffffffffffffffffff19166001606860020a03929092169190911790556040805187815260208101849052808201839052905133916001917ffba23a36f0fad77947f553b9a89c1848ac869c8ce4c1c0d93cb14a9f4ba107f4916060908290030190a35090949350505050565b600054600160a060020a031681565b61186a30611a73565b600160a060020a0316331461187b57fe5b6108fa308263ffffffff61215016565b61189430611a73565b600160a060020a031633146118a557fe5b60008163ffffffff16101580156118c45750620f424063ffffffff8216105b151561191a576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420636f6e76657273696f6e2066656500000000000000000000604482015290519081900360640190fd5b6001546040805163ffffffff7401000000000000000000000000000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16001805463ffffffff909216740100000000000000000000000000000000000000000277ffffffff000000000000000000000000000000000000000019909216919091179055565b6119c830611a73565b600160a060020a031633146119d957fe5b6119e1610cd3565b600160a060020a0382811691161415611a44576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e2774207472616e7366657220746f2063757272656e74206f776e657200604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b604080517f9ed153c0000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516000916850726f746f7479706591639ed153c09160248082019260209290919082900301818787803b158015611ae057600080fd5b505af1158015611af4573d6000803e3d6000fd5b505050506040513d6020811015611b0a57600080fd5b505192915050565b600082820183811015611b2157fe5b9392505050565b60006001606860020a0382168214611b3c57fe5b5090565b60008084118015611b515750600083115b1515611b5c57600080fd5b611b668483611b12565b611b708484611ea2565b811515611b7957fe5b04949350505050565b604080517f23d8c7db000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516000916850726f746f74797065916323d8c7db9160248082019260209290919082900301818787803b158015611ae057600080fd5b604080517fd87333ac000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f747970659163d87333ac9160448082019260209290919082900301818787803b158015611c6457600080fd5b505af1158015611c78573d6000803e3d6000fd5b505050506040513d6020811015611c8e57600080fd5b50519392505050565b604080517fc9c4fc41000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f747970659163c9c4fc419160448082019260209290919082900301818787803b158015611c6457600080fd5b604080517f02d43dc8000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f74797065916302d43dc89160448082019260209290919082900301818787803b158015611c6457600080fd5b604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f7479706591638ca3b44891604480830192600092919082900301818387803b158015611df257600080fd5b505af1158015611e06573d6000803e3d6000fd5b505050505050565b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152600160a060020a0385166004820152602481018490526044810183905290516850726f746f7479706591633659f8ed91606480830192600092919082900301818387803b158015611e8557600080fd5b505af1158015611e99573d6000803e3d6000fd5b50505050505050565b6000828202831580611ebe5750828482811515611ebb57fe5b04145b1515611b2157fe5b604080517f80df45b4000000000000000000000000000000000000000000000000000000008152600160a060020a0383166004820152815160009283926850726f746f74797065926380df45b49260248084019391929182900301818787803b158015611f3257600080fd5b505af1158015611f46573d6000803e3d6000fd5b505050506040513d6040811015611f5c57600080fd5b5080516020909101519092509050915091565b604080517f01378b58000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f74797065916301378b5891604480830192600092919082900301818387803b158015611df257600080fd5b604080517fcdd2a99f000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516850726f746f747970659163cdd2a99f91602480830192600092919082900301818387803b15801561204957600080fd5b505af115801561205d573d6000803e3d6000fd5b5050505050565b60008183101561207057fe5b50900390565b604080517f22928d6b000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f74797065916322928d6b91604480830192600092919082900301818387803b158015611df257600080fd5b604080517f766c4f37000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516850726f746f747970659163766c4f3791602480830192600092919082900301818387803b15801561204957600080fd5b604080517f3871a9fb000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f7479706591633871a9fb91604480830192600092919082900301818387803b158015611df257600080fd00436f6e76657274656420616d6f756e74206d757374206265206c6f776572207468616e207468652062616c616e6365206f662074686973000000000000000000a165627a7a7230582059af12e6cd07bc872761bb5bb62797b6d3fd772e3a2845acc70bdd5b3a01cefd0029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000001000013880000000000000000000000000000456e65726779", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000d3e6744e6d2bbeaf28c8", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000000000000000000000084429df6f12b29b8651eb" + } + }, + "0xf6e78a5584c06e2dec5c675d357f050a5402a730": { + "balance": "0x4a84c8914f5f81ed2d6", + "energy": "0x271c1b84e0a97e885cb3" + } + }, + "calls": { + "from": "0xf6e78a5584c06e2dec5c675d357f050a5402a730", + "gas": "0x9ed7", + "gasUsed": "0x845e", + "to": "0xd015d91b42bed5feaf242082b11b83b431abbf4f", + "input": "0xab23bfb50000000000000000000000000000000000000000000000008731ea11815ba83f", + "output": "0x0000000000000000000000000000000000000000000000008a97829a4e93fd86", + "calls": [ + { + "from": "0xd015d91b42bed5feaf242082b11b83b431abbf4f", + "gas": "0x91bb", + "gasUsed": "0x366", + "to": "0x0000000000000000000000000000456e65726779", + "input": "0x70a08231000000000000000000000000d015d91b42bed5feaf242082b11b83b431abbf4f", + "output": "0x00000000000000000000000000000000000000000008498047bc2d73a58283b4", + "calls": [ + { + "from": "0x0000000000000000000000000000456e65726779", + "gas": "0x8856", + "gasUsed": "0xfffffffffffffb76", + "to": "0x0000000000000000000000000000456e65726779", + "input": "0xee660480000000000000000000000000d015d91b42bed5feaf242082b11b83b431abbf4f", + "output": "0x00000000000000000000000000000000000000000008498047bc2d73a58283b4", + "value": "0x0", + "type": "CALL" + } + ], + "value": "0x0", + "type": "CALL" + }, + { + "from": "0xd015d91b42bed5feaf242082b11b83b431abbf4f", + "gas": "0x819f", + "gasUsed": "0x340e", + "to": "0x0000000000000000000000000000456e65726779", + "input": "0xa9059cbb000000000000000000000000f6e78a5584c06e2dec5c675d357f050a5402a73000000000000000000000000000000000000000000000000089e61cd46a585ed0", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "calls": [ + { + "from": "0x0000000000000000000000000000456e65726779", + "gas": "0x77ef", + "gasUsed": "0xefe", + "to": "0x0000000000000000000000000000456e65726779", + "input": "0x39ed08d5000000000000000000000000d015d91b42bed5feaf242082b11b83b431abbf4f00000000000000000000000000000000000000000000000089e61cd46a585ed0", + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "type": "CALL" + }, + { + "from": "0x0000000000000000000000000000456e65726779", + "gas": "0x62ab", + "gasUsed": "0xefe", + "to": "0x0000000000000000000000000000456e65726779", + "input": "0x1cedfac1000000000000000000000000f6e78a5584c06e2dec5c675d357f050a5402a73000000000000000000000000000000000000000000000000089e61cd46a585ed0", + "value": "0x0", + "type": "CALL" + } + ], + "logs": [ + { + "address": "0x0000000000000000000000000000456e65726779", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d015d91b42bed5feaf242082b11b83b431abbf4f", + "0x000000000000000000000000f6e78a5584c06e2dec5c675d357f050a5402a730" + ], + "data": "0x00000000000000000000000000000000000000000000000089e61cd46a585ed0" + } + ], + "value": "0x0", + "type": "CALL" + } + ], + "logs": [ + { + "address": "0xd015d91b42bed5feaf242082b11b83b431abbf4f", + "topics": [ + "0xfba23a36f0fad77947f553b9a89c1848ac869c8ce4c1c0d93cb14a9f4ba107f4", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f6e78a5584c06e2dec5c675d357f050a5402a730" + ], + "data": "0x0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000089e61cd46a585ed000000000000000000000000000000000000000000000000000b165c5e43b9eb6" + } + ], + "value": "0xde0b6b3a7640000", + "type": "CALL" + }, + "config":{ + "withLog": true + } +} \ No newline at end of file diff --git a/tracers/testdata/calls.json b/tracers/testdata/calls.json index 7b184ad60..6c0bdd66e 100644 --- a/tracers/testdata/calls.json +++ b/tracers/testdata/calls.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 2172764, + "blockID": "0x0021275c5ae069f86121d49563be9a1e5c7e85e9a629ecaa3403eafbf70df1d3", + "blockTime": 1551750600, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0x731f7ffa916a24049457f959b8c160191666c58e", "clauseIndex": 0, - "txID": "0x2c6f0b2f10d6af933eda27bafaa635c2553eda07a489c7410d289f7047f0ee88" + "txID": "0x2c6f0b2f10d6af933eda27bafaa635c2553eda07a489c7410d289f7047f0ee88", + "gas": "0x4b1d88" }, "clause": { "to": "0x89d7526f9a16e1f808fa706232d130459ec59af2", @@ -58,7 +61,7 @@ }, "0x89d7526f9a16e1f808fa706232d130459ec59af2": { "balance": "0x0", - "energy": "0x0", + "energy": "0xd0d9fd1e4c0380938000", "code": "0x60806040526004361061010e5763ffffffff60e060020a6000350416630888c2d1811461011357806319e6bc881461014757806329ba7bb21461016e5780632d88af4a14610183578063327942a2146101a657806335543f3e146101c15780633f4ba83a146101f8578063485fef7b1461020d57806354fd4d501461022557806358f28c5b146102505780635c975abb1461026e578063706e3506146102975780638456cb591461031457806389483a9a146103295780638da5cb5b146103535780639a210542146103685780639fd0506d146103e8578063cd10c04b146103fd578063d34122b514610412578063e2cee54414610433578063eee4a04c14610448578063f2fde38b14610469575b600080fd5b34801561011f57600080fd5b5061012b60043561048a565b60408051600160a060020a039092168252519081900360200190f35b34801561015357600080fd5b5061015c6104a5565b60408051918252519081900360200190f35b34801561017a57600080fd5b5061012b6104ab565b34801561018f57600080fd5b506101a4600160a060020a03600435166104ba565b005b3480156101b257600080fd5b506101a46004356024356105b0565b3480156101cd57600080fd5b506101a4600160a060020a03600435811690602435906044351515906064351660843560a43561084a565b34801561020457600080fd5b506101a4610a68565b34801561021957600080fd5b506101a4600435610b85565b34801561023157600080fd5b5061023a610db5565b6040805160ff9092168252519081900360200190f35b34801561025c57600080fd5b506101a460043560ff60243516610dc5565b34801561027a57600080fd5b50610283610f70565b604080519115158252519081900360200190f35b3480156102a357600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261012b9583359536956044949193909101919081908401838280828437509497505050833560ff169450505050602081013515159060408101359060600135600160a060020a0316610f80565b34801561032057600080fd5b506101a4611446565b34801561033557600080fd5b506101a460043560ff60243516600160a060020a0360443516611556565b34801561035f57600080fd5b5061012b611724565b34801561037457600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261012b9583359536956044949193909101919081908401838280828437509497505050508235151593505050602081013590600160a060020a036040820135169060608101359060800135611733565b3480156103f457600080fd5b5061012b611a70565b34801561040957600080fd5b5061012b611a7f565b34801561041e57600080fd5b5061015c600160a060020a0360043516611a8e565b34801561043f57600080fd5b5061015c611aa9565b34801561045457600080fd5b506101a4600160a060020a0360043516611aaf565b34801561047557600080fd5b506101a4600160a060020a0360043516611c73565b600090815260066020526040902054600160a060020a031690565b60055481565b600154600160a060020a031681565b600254600160a060020a03163214806104dd5750600254600160a060020a031633145b1515610521576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b600160a060020a0381161515610581576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03163314806105d65750600054600160a060020a031632145b151561061a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161561066a576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600084815260066020526040902054600160a060020a031691508115156106db576040805160e560020a62461bcd02815260206004820152601160248201527f636f6d70616e79206e6f74206578697374000000000000000000000000000000604482015290519081900360640190fd5b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905165456e65726779916370a082319160248083019260209291908290030181600087803b15801561073957600080fd5b505af115801561074d573d6000803e3d6000fd5b505050506040513d602081101561076357600080fd5b50519050828110156107bf576040805160e560020a62461bcd02815260206004820152601660248201527f656e6572677920697320696e73756666696369656e7400000000000000000000604482015290519081900360640190fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101859052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b15801561082c57600080fd5b505af1158015610840573d6000803e3d6000fd5b5050505050505050565b600454156108a2576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03881617905560048590558315610a5757600160a060020a0383161515610935576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c696420757365722061646472657373000000000000000000000000604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152306004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b1580156109ad57600080fd5b505af41580156109c1573d6000803e3d6000fd5b5050604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038716602482015290517337896a421adad56be1abe02fc45773b5625c280a9350638ca3b44892506044808301926000929190829003018186803b158015610a3e57600080fd5b505af4158015610a52573d6000803e3d6000fd5b505050505b610a6083611c73565b505050505050565b600254600160a060020a0316321480610a8b5750600254600160a060020a031633145b1515610acf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161515610b32576040805160e560020a62461bcd02815260206004820152601360248201527f70726f746f636f6c2069732072756e6e696e6700000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60008054600160a060020a0316331480610ba95750600054600160a060020a031632145b1515610bed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff1615610c3d576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600082815260066020526040902054600160a060020a03161515610cab576040805160e560020a62461bcd02815260206004820152601160248201527f636f6d70616e79206e6f74206578697374000000000000000000000000000000604482015290519081900360640190fd5b506000818152600660205260408082205481517feee4a04c0000000000000000000000000000000000000000000000000000000081523060048201529151600160a060020a0390911692839263eee4a04c926024808301939282900301818387803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b5050506000838152600660209081526040808320805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a0385168084526007835281842093909355600580546000190190558051928352518593507fd0c0f2fcfc42f8992ee028132e0d4d85beeef861b7e8dc855ec7e9854d3ad3df9281900390910190a25050565b60025460a060020a900460ff1681565b600054600160a060020a0316331480610de85750600054600160a060020a031632145b1515610e2c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff1615610e7c576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600082815260066020526040902054600160a060020a03161515610eea576040805160e560020a62461bcd02815260206004820152601160248201527f636f6d70616e79206e6f74206578697374000000000000000000000000000000604482015290519081900360640190fd5b6000828152600660205260408082205481517f702053b000000000000000000000000000000000000000000000000000000000815260ff851660048201529151600160a060020a039091169263702053b0926024808201939182900301818387803b158015610f5857600080fd5b505af1158015610a60573d6000803e3d6000fd5b5050565b60015460a060020a900460ff1681565b60008054819081908190600160a060020a0316331480610faa5750600054600160a060020a031632145b1515610fee576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161561103e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b60008a815260066020526040902054600160a060020a031615156110ac576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b6110b4611da2565b600160a060020a0316638ef6e7fe8a6040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111125781810151838201526020016110fa565b50505050905090810190601f16801561113f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561115e57600080fd5b505af1158015611172573d6000803e3d6000fd5b505050506040513d602081101561118857600080fd5b505160008b8152600660205260408082205481517f4d9431ea000000000000000000000000000000000000000000000000000000008152600160a060020a03918216600482015260ff8d1660248201529151939650861692634d9431ea9260448084019391929182900301818387803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50505060008b8152600660205260408082205481517f59d453e000000000000000000000000000000000000000000000000000000000815260ff8d166004820152600160a060020a03888116602483015292519290911695508593506359d453e092604480830193919282900301818387803b15801561129757600080fd5b505af11580156112ab573d6000803e3d6000fd5b5050505086156113f3576112bd611da2565b600160a060020a0316638ef6e7fe6040518163ffffffff1660e060020a02815260040180806020018281038252600e8152602001807f636c61737369632d706f6c696379000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561133657600080fd5b505af115801561134a573d6000803e3d6000fd5b505050506040513d602081101561136057600080fd5b5051604080517f2aa71e2400000000000000000000000000000000000000000000000000000000815260048101899052600160a060020a038881166024830152915192935090831691632aa71e249160448082019260009290919082900301818387803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b505050506113f38a8983611556565b6040805160ff8a168152600160a060020a038516602082015281518c927f1443dedef98a1fa143f735326218daf48733adc921845d80a802dc5a26bcd5f7928290030190a2509098975050505050505050565b600254600160a060020a03163214806114695750600254600160a060020a031633145b15156114ad576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff16156114fd576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600054600160a060020a03163314806115795750600054600160a060020a031632145b15156115bd576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161561160d576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600083815260066020526040902054600160a060020a03161580159061163b5750600160a060020a03811615155b1515611691576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420696e70757400000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600660205260408082205481517fa22a7b5d00000000000000000000000000000000000000000000000000000000815260ff86166004820152600160a060020a0385811660248301529251929091169263a22a7b5d9260448084019382900301818387803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b50505050505050565b600054600160a060020a031681565b600080548190600160a060020a03163314806117595750600054600160a060020a031632145b151561179d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff16156117ed576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600089815260066020526040902054600160a060020a03161561185a576040805160e560020a62461bcd02815260206004820152601560248201527f61206475706c696361746520636f6d70616e7949640000000000000000000000604482015290519081900360640190fd5b611862611da2565b600160a060020a0316638ef6e7fe896040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118c05781810151838201526020016118a8565b50505050905090810190601f1680156118ed5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561190c57600080fd5b505af1158015611920573d6000803e3d6000fd5b505050506040513d602081101561193657600080fd5b5051604080517feb96aa06000000000000000000000000000000000000000000000000000000008152306004820152602481018c9052891515604482015260648101899052600160a060020a03888116608483015260a4820188905260c4820187905291519293509083169163eb96aa069160e48082019260009290919082900301818387803b1580156119c957600080fd5b505af11580156119dd573d6000803e3d6000fd5b50505060008a8152600660209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03871690811790915580845260078352928190208d90556005805460010190558051928352518c93507f0d535cb7feb34d86bfc1b7c7310b856c729022d6f23a4bf858bc3cbce5e50d6c9281900390910190a298975050505050505050565b600254600160a060020a031681565b600354600160a060020a031681565b600160a060020a031660009081526007602052604090205490565b60045481565b600254600090600160a060020a0316321480611ad55750600254600160a060020a031633145b1515611b19576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff1615611b69576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b611b71611446565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905165456e65726779916370a082319160248083019260209291908290030181600087803b158015611bcf57600080fd5b505af1158015611be3573d6000803e3d6000fd5b505050506040513d6020811015611bf957600080fd5b505190506000811115610f6c57604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101839052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b158015610f5857600080fd5b600054600160a060020a0316331480611c965750600054600160a060020a031632145b1515611cda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b600160a060020a0381161515611d3a576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611dac611e56565b600160a060020a031663693ec85e6040518163ffffffff1660e060020a02815260040180806020018281038252601a8152602001807f636f6d2e7665636861696e2e7769646765742d666163746f7279000000000000815250602001915050602060405180830381600087803b158015611e2557600080fd5b505af1158015611e39573d6000803e3d6000fd5b505050506040513d6020811015611e4f57600080fd5b5051905090565b73ce092f78d97d81a352c4c1d811d44245f95a27dd9056007065726d697373696f6e2064656e69656400000000000000000000000000000070726f746f636f6c206973206e6f742072756e696e6700000000000000000000a165627a7a7230582017368c30ea26178b98b89fe0bc083135718320cd73ce4e94d5bbfd6053cff1800029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000731f7ffa916a24049457f959b8c160191666c58e", @@ -66,6 +69,10 @@ "0xfeeb12b05be7689b0a07d30a54243a8c343346e183a31b92136845600f4e26e7": "0x000000000000000000000000018f4199ff26c0cb06bf0ccfc00995c05c9e5c04" } }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b3b431de1c215c200000", + "energy": "0x5468a8c1e5ff69bbf60ed0" + }, "0xce092f78d97d81a352c4c1d811d44245f95a27dd": { "balance": "0x0", "energy": "0x0", @@ -85,139 +92,139 @@ } }, "calls": { - "type": "CALL", "from": "0x731f7ffa916a24049457f959b8c160191666c58e", - "to": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "value": "0x0", "gas": "0x4b1d88", "gasUsed": "0xde56b", + "to": "0x89d7526f9a16e1f808fa706232d130459ec59af2", "input": "0x706e350643eb5fb21cedc7a9c3aacf8fb5ed427b19a92b842b6086e86a253b52c13f7a8e00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018a270dbf282455df83cf65859a5715b85c4784e380312b0f05926e0d6809ce020000000000000000000000002626d6855f3fbb2edf7a852eabccf1ab128310c50000000000000000000000000000000000000000000000000000000000000012646174617365742d627974657333322d76320000000000000000000000000000", "output": "0x0000000000000000000000006a561b5a6a8f14724de26c3bf922c9e884fa3df2", "calls": [ { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0xce092f78d97d81a352c4c1d811d44245f95a27dd", - "value": "0x0", "gas": "0x49e380", "gasUsed": "0x413", + "to": "0xce092f78d97d81a352c4c1d811d44245f95a27dd", "input": "0x693ec85e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001a636f6d2e7665636861696e2e7769646765742d666163746f7279000000000000", - "output": "0x000000000000000000000000e2bd2067f91c86e97c178f707f7f9899336a789e" + "output": "0x000000000000000000000000e2bd2067f91c86e97c178f707f7f9899336a789e", + "value": "0x0", + "type": "CALL" }, { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0xe2bd2067f91c86e97c178f707f7f9899336a789e", - "value": "0x0", "gas": "0x49d77c", "gasUsed": "0x496b8", + "to": "0xe2bd2067f91c86e97c178f707f7f9899336a789e", "input": "0x8ef6e7fe00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000012646174617365742d627974657333322d76320000000000000000000000000000", "output": "0x0000000000000000000000006a561b5a6a8f14724de26c3bf922c9e884fa3df2", "calls": [ { - "type": "CALL", "from": "0xe2bd2067f91c86e97c178f707f7f9899336a789e", - "to": "0x7c6d059078bb5034e4f74f02a6ab0db99f5b0bdb", - "value": "0x0", "gas": "0x48a64b", "gasUsed": "0x482f2", + "to": "0x7c6d059078bb5034e4f74f02a6ab0db99f5b0bdb", "input": "0x8e1a55fc", "output": "0x0000000000000000000000006a561b5a6a8f14724de26c3bf922c9e884fa3df2", "calls": [ { - "type": "CREATE", "from": "0x7c6d059078bb5034e4f74f02a6ab0db99f5b0bdb", - "to": "0x6a561b5a6a8f14724de26c3bf922c9e884fa3df2", - "value": "0x0", "gas": "0x47065c", "gasUsed": "0x402f9", + "to": "0x6a561b5a6a8f14724de26c3bf922c9e884fa3df2", "input": "0x60806040526000805460ff1916600217905534801561001d57600080fd5b506104bc8061002d6000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306661abd811461009d5780634d9431ea146100c45780634e91db08146100fa57806354fd4d50146101155780638eaa6ac014610140578063a6ed563e14610158578063af640d0f14610170578063c031a18014610185578063cd10c04b14610212575b600080fd5b3480156100a957600080fd5b506100b2610250565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100f873ffffffffffffffffffffffffffffffffffffffff6004351660ff60243516610256565b005b34801561010657600080fd5b506100f8600435602435610333565b34801561012157600080fd5b5061012a61040c565b6040805160ff9092168252519081900360200190f35b34801561014c57600080fd5b506100b2600435610415565b34801561016457600080fd5b506100b2600435610426565b34801561017c57600080fd5b5061012a610438565b34801561019157600080fd5b5061019d600435610446565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d75781810151838201526020016101bf565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021e57600080fd5b50610227610474565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff16156102db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616e2062652063616c6c6564206f6e6c79206f6e6365000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff90931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091556000805460ff9092166101000261ff0019909216919091179055565b60025460009073ffffffffffffffffffffffffffffffffffffffff1633146103bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b506000828152600360205260409020548115156103e95780156103e457600180546000190190555b6103f9565b8015156103f95760018054810190555b5060009182526003602052604090912055565b60005460ff1681565b600061042082610426565b92915050565b60009081526003602052604090205490565b600054610100900460ff1681565b6000908152600360209081526040918290205482518083019190915282518082039092018252820190915290565b60025473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820f02148b8813fd7cf89e5d30a415e72b869409ec83d5adaa7155dd359d0189aa40029", - "output": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306661abd811461009d5780634d9431ea146100c45780634e91db08146100fa57806354fd4d50146101155780638eaa6ac014610140578063a6ed563e14610158578063af640d0f14610170578063c031a18014610185578063cd10c04b14610212575b600080fd5b3480156100a957600080fd5b506100b2610250565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100f873ffffffffffffffffffffffffffffffffffffffff6004351660ff60243516610256565b005b34801561010657600080fd5b506100f8600435602435610333565b34801561012157600080fd5b5061012a61040c565b6040805160ff9092168252519081900360200190f35b34801561014c57600080fd5b506100b2600435610415565b34801561016457600080fd5b506100b2600435610426565b34801561017c57600080fd5b5061012a610438565b34801561019157600080fd5b5061019d600435610446565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d75781810151838201526020016101bf565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021e57600080fd5b50610227610474565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff16156102db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616e2062652063616c6c6564206f6e6c79206f6e6365000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff90931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091556000805460ff9092166101000261ff0019909216919091179055565b60025460009073ffffffffffffffffffffffffffffffffffffffff1633146103bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b506000828152600360205260409020548115156103e95780156103e457600180546000190190555b6103f9565b8015156103f95760018054810190555b5060009182526003602052604090912055565b60005460ff1681565b600061042082610426565b92915050565b60009081526003602052604090205490565b600054610100900460ff1681565b6000908152600360209081526040918290205482518083019190915282518082039092018252820190915290565b60025473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820f02148b8813fd7cf89e5d30a415e72b869409ec83d5adaa7155dd359d0189aa40029" + "output": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306661abd811461009d5780634d9431ea146100c45780634e91db08146100fa57806354fd4d50146101155780638eaa6ac014610140578063a6ed563e14610158578063af640d0f14610170578063c031a18014610185578063cd10c04b14610212575b600080fd5b3480156100a957600080fd5b506100b2610250565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100f873ffffffffffffffffffffffffffffffffffffffff6004351660ff60243516610256565b005b34801561010657600080fd5b506100f8600435602435610333565b34801561012157600080fd5b5061012a61040c565b6040805160ff9092168252519081900360200190f35b34801561014c57600080fd5b506100b2600435610415565b34801561016457600080fd5b506100b2600435610426565b34801561017c57600080fd5b5061012a610438565b34801561019157600080fd5b5061019d600435610446565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d75781810151838201526020016101bf565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021e57600080fd5b50610227610474565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff16156102db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616e2062652063616c6c6564206f6e6c79206f6e6365000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff90931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091556000805460ff9092166101000261ff0019909216919091179055565b60025460009073ffffffffffffffffffffffffffffffffffffffff1633146103bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b506000828152600360205260409020548115156103e95780156103e457600180546000190190555b6103f9565b8015156103f95760018054810190555b5060009182526003602052604090912055565b60005460ff1681565b600061042082610426565b92915050565b60009081526003602052604090205490565b600054610100900460ff1681565b6000908152600360209081526040918290205482518083019190915282518082039092018252820190915290565b60025473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820f02148b8813fd7cf89e5d30a415e72b869409ec83d5adaa7155dd359d0189aa40029", + "value": "0x0", + "type": "CREATE" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" }, { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0x6a561b5a6a8f14724de26c3bf922c9e884fa3df2", - "value": "0x0", "gas": "0x454b87", "gasUsed": "0x6535", - "input": "0x4d9431ea000000000000000000000000018f4199ff26c0cb06bf0ccfc00995c05c9e5c040000000000000000000000000000000000000000000000000000000000000001" + "to": "0x6a561b5a6a8f14724de26c3bf922c9e884fa3df2", + "input": "0x4d9431ea000000000000000000000000018f4199ff26c0cb06bf0ccfc00995c05c9e5c040000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "type": "CALL" }, { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0x018f4199ff26c0cb06bf0ccfc00995c05c9e5c04", - "value": "0x0", "gas": "0x44e072", "gasUsed": "0x5854", - "input": "0x59d453e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006a561b5a6a8f14724de26c3bf922c9e884fa3df2" + "to": "0x018f4199ff26c0cb06bf0ccfc00995c05c9e5c04", + "input": "0x59d453e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006a561b5a6a8f14724de26c3bf922c9e884fa3df2", + "value": "0x0", + "type": "CALL" }, { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0xce092f78d97d81a352c4c1d811d44245f95a27dd", - "value": "0x0", "gas": "0x448294", "gasUsed": "0x413", + "to": "0xce092f78d97d81a352c4c1d811d44245f95a27dd", "input": "0x693ec85e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001a636f6d2e7665636861696e2e7769646765742d666163746f7279000000000000", - "output": "0x000000000000000000000000e2bd2067f91c86e97c178f707f7f9899336a789e" + "output": "0x000000000000000000000000e2bd2067f91c86e97c178f707f7f9899336a789e", + "value": "0x0", + "type": "CALL" }, { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0xe2bd2067f91c86e97c178f707f7f9899336a789e", - "value": "0x0", "gas": "0x4477b0", "gasUsed": "0x6c994", + "to": "0xe2bd2067f91c86e97c178f707f7f9899336a789e", "input": "0x8ef6e7fe0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e636c61737369632d706f6c696379000000000000000000000000000000000000", "output": "0x0000000000000000000000007b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", "calls": [ { - "type": "CALL", "from": "0xe2bd2067f91c86e97c178f707f7f9899336a789e", - "to": "0x2303b0589661987be623becfc3a9a419326ece5d", - "value": "0x0", "gas": "0x435bff", "gasUsed": "0x6b5ce", + "to": "0x2303b0589661987be623becfc3a9a419326ece5d", "input": "0x8e1a55fc", "output": "0x0000000000000000000000007b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", "calls": [ { - "type": "CREATE", "from": "0x2303b0589661987be623becfc3a9a419326ece5d", - "to": "0x7b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", - "value": "0x0", "gas": "0x41d0ac", "gasUsed": "0x63546", + "to": "0x7b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", "input": "0x60c0604052601360808181527f416363657373506f6c696379436c61737369630000000000000000000000000060a0908152909161003f91600091610068565b50506001805432600160a060020a03199182168117909255600280549091169091179055610103565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a957805160ff19168380011785556100d6565b828001600101855582156100d6579182015b828111156100d65782518255916020019190600101906100bb565b506100e29291506100e6565b5090565b61010091905b808211156100e257600081556001016100ec565b90565b6106bf806101126000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166329ba7bb2811461009d5780632aa71e24146100ce57806366259e7f146100f45780636f78c7cd1461010c57806384c9f8f6146101245780638da5cb5b146101a4578063e14c9e2e146101b9578063e55cb3d414610243578063f2fde38b1461025b575b600080fd5b3480156100a957600080fd5b506100b261027c565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100f2600435600160a060020a036024351661028b565b005b34801561010057600080fd5b506100f2600435610309565b34801561011857600080fd5b506100f26004356103c2565b34801561013057600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261019094600160a060020a03813516946024803595604435953695608494930191819084018382808284375094975061047e9650505050505050565b604080519115158252519081900360200190f35b3480156101b057600080fd5b506100b2610497565b3480156101c557600080fd5b506101ce6104a6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102085781810151838201526020016101f0565b50505050905090810190601f1680156102355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024f57600080fd5b5061019060043561053c565b34801561026757600080fd5b506100f2600160a060020a0360043516610551565b600254600160a060020a031681565b60045460ff16156102e6576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6004805460ff191660011790556102fc826103c2565b61030581610551565b5050565b600154600160a060020a031633148061032c5750600154600160a060020a031632145b1515610382576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191690555182917f87ed60f85ca9455ddc75377b551f6e9345e1191987f08d339604ebbd4d274c3c91a250565b600154600160a060020a03163314806103e55750600154600160a060020a031632145b151561043b576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191660011790555182917f564472207cf6697287aa046e48d6a90a31d9be632c632a96785adf57c79e6fa491a250565b505060009081526003602052604090205460ff16919050565b600154600160a060020a031681565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105325780601f1061050757610100808354040283529160200191610532565b820191906000526020600020905b81548152906001019060200180831161051557829003601f168201915b5050505050905090565b60036020526000908152604090205460ff1681565b600154600160a060020a03163314806105745750600154600160a060020a031632145b15156105ca576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561062a576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820cb8cd44a087ec93943acb1f88c01f7125eb473f3afd9a7cd6275acdbbc6879000029", - "output": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166329ba7bb2811461009d5780632aa71e24146100ce57806366259e7f146100f45780636f78c7cd1461010c57806384c9f8f6146101245780638da5cb5b146101a4578063e14c9e2e146101b9578063e55cb3d414610243578063f2fde38b1461025b575b600080fd5b3480156100a957600080fd5b506100b261027c565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100f2600435600160a060020a036024351661028b565b005b34801561010057600080fd5b506100f2600435610309565b34801561011857600080fd5b506100f26004356103c2565b34801561013057600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261019094600160a060020a03813516946024803595604435953695608494930191819084018382808284375094975061047e9650505050505050565b604080519115158252519081900360200190f35b3480156101b057600080fd5b506100b2610497565b3480156101c557600080fd5b506101ce6104a6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102085781810151838201526020016101f0565b50505050905090810190601f1680156102355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024f57600080fd5b5061019060043561053c565b34801561026757600080fd5b506100f2600160a060020a0360043516610551565b600254600160a060020a031681565b60045460ff16156102e6576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6004805460ff191660011790556102fc826103c2565b61030581610551565b5050565b600154600160a060020a031633148061032c5750600154600160a060020a031632145b1515610382576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191690555182917f87ed60f85ca9455ddc75377b551f6e9345e1191987f08d339604ebbd4d274c3c91a250565b600154600160a060020a03163314806103e55750600154600160a060020a031632145b151561043b576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191660011790555182917f564472207cf6697287aa046e48d6a90a31d9be632c632a96785adf57c79e6fa491a250565b505060009081526003602052604090205460ff16919050565b600154600160a060020a031681565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105325780601f1061050757610100808354040283529160200191610532565b820191906000526020600020905b81548152906001019060200180831161051557829003601f168201915b5050505050905090565b60036020526000908152604090205460ff1681565b600154600160a060020a03163314806105745750600154600160a060020a031632145b15156105ca576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561062a576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820cb8cd44a087ec93943acb1f88c01f7125eb473f3afd9a7cd6275acdbbc6879000029" + "output": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166329ba7bb2811461009d5780632aa71e24146100ce57806366259e7f146100f45780636f78c7cd1461010c57806384c9f8f6146101245780638da5cb5b146101a4578063e14c9e2e146101b9578063e55cb3d414610243578063f2fde38b1461025b575b600080fd5b3480156100a957600080fd5b506100b261027c565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100f2600435600160a060020a036024351661028b565b005b34801561010057600080fd5b506100f2600435610309565b34801561011857600080fd5b506100f26004356103c2565b34801561013057600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261019094600160a060020a03813516946024803595604435953695608494930191819084018382808284375094975061047e9650505050505050565b604080519115158252519081900360200190f35b3480156101b057600080fd5b506100b2610497565b3480156101c557600080fd5b506101ce6104a6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102085781810151838201526020016101f0565b50505050905090810190601f1680156102355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024f57600080fd5b5061019060043561053c565b34801561026757600080fd5b506100f2600160a060020a0360043516610551565b600254600160a060020a031681565b60045460ff16156102e6576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6004805460ff191660011790556102fc826103c2565b61030581610551565b5050565b600154600160a060020a031633148061032c5750600154600160a060020a031632145b1515610382576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191690555182917f87ed60f85ca9455ddc75377b551f6e9345e1191987f08d339604ebbd4d274c3c91a250565b600154600160a060020a03163314806103e55750600154600160a060020a031632145b151561043b576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191660011790555182917f564472207cf6697287aa046e48d6a90a31d9be632c632a96785adf57c79e6fa491a250565b505060009081526003602052604090205460ff16919050565b600154600160a060020a031681565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105325780601f1061050757610100808354040283529160200191610532565b820191906000526020600020905b81548152906001019060200180831161051557829003601f168201915b5050505050905090565b60036020526000908152604090205460ff1681565b600154600160a060020a03163314806105745750600154600160a060020a031632145b15156105ca576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561062a576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820cb8cd44a087ec93943acb1f88c01f7125eb473f3afd9a7cd6275acdbbc6879000029", + "value": "0x0", + "type": "CREATE" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" }, { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0x7b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", - "value": "0x0", "gas": "0x3dc2ad", "gasUsed": "0xc5b7", - "input": "0x2aa71e248a270dbf282455df83cf65859a5715b85c4784e380312b0f05926e0d6809ce020000000000000000000000002626d6855f3fbb2edf7a852eabccf1ab128310c5" + "to": "0x7b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", + "input": "0x2aa71e248a270dbf282455df83cf65859a5715b85c4784e380312b0f05926e0d6809ce020000000000000000000000002626d6855f3fbb2edf7a852eabccf1ab128310c5", + "value": "0x0", + "type": "CALL" }, { - "type": "CALL", "from": "0x89d7526f9a16e1f808fa706232d130459ec59af2", - "to": "0x018f4199ff26c0cb06bf0ccfc00995c05c9e5c04", - "value": "0x0", "gas": "0x3cf457", "gasUsed": "0xac28", - "input": "0xa22a7b5d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b2493d3ef8b32de6fe0e17e1dedb0ca10743a76" + "to": "0x018f4199ff26c0cb06bf0ccfc00995c05c9e5c04", + "input": "0xa22a7b5d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/testdata/create_inside.json b/tracers/testdata/create_inside.json index 81a4dfe79..0a26c7e7c 100644 --- a/tracers/testdata/create_inside.json +++ b/tracers/testdata/create_inside.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 1082617, + "blockID": "0x001084f958116654c556d7464bc0de87ab64f17ad36779549856df642b155ace", + "blockTime": 1540848240, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0xb8c73790e4fbfdc3e879af1b43fadc2a9d43a1e1", "clauseIndex": 0, - "txID": "0xa598fa84dad5d0954f1dbe7688dd366c7202486ba4a354d95c81afdba3004eef" + "txID": "0xa598fa84dad5d0954f1dbe7688dd366c7202486ba4a354d95c81afdba3004eef", + "gas": "0x169048" }, "clause": { "to": "0xb43e7351735eb19c4e7d4ffdde41427a8b9f8885", @@ -13,15 +16,19 @@ "state": { "0x31af8335efbba7aaed29aeadeb47ea86f586ceb9": { "balance": "0x0", - "energy": "0x0", + "energy": "0x9eee6d68f4c00", "code": "0x608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063023f4147146101d05780630c3f6acf146101fb5780630cefa4de146102345780630d392cd91461025f5780630e8c4f2c146102ae5780632023c8b2146102dd57806323548b8b14610334578063237819fe1461035f57806326a4e8d2146103cb578063329749511461040e578063370158ea146104655780633a6a4d2e146105a35780633cb5d100146105ba5780633ccfd60b14610627578063412753581461063e57806342e94c901461069557806354fd4d50146106ec578063611b409514610717578063630ad834146107465780636560f8db1461075d57806373e888fd146107cf5780637fa4cacb146108055780639b19251a146108485780639d76ea58146108a3578063b48309da146108fa578063b9c76c1b14610911578063c5b208ff1461097a578063ca325469146109d8578063ea8a1af014610a2f578063f08e258114610a46578063f2624b5d14610a71578063f851a44014610a9c575b600060038111156101a357fe5b600a60009054906101000a900460ff1660038111156101be57fe5b14156101ce576101cd33610af3565b5b005b3480156101dc57600080fd5b506101e56110f0565b6040518082815260200191505060405180910390f35b34801561020757600080fd5b506102106110f6565b6040518082600381111561022057fe5b60ff16815260200191505060405180910390f35b34801561024057600080fd5b50610249611109565b6040518082815260200191505060405180910390f35b34801561026b57600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061110f565b005b3480156102ba57600080fd5b506102c3611346565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2611359565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034057600080fd5b5061034961137f565b6040518082815260200191505060405180910390f35b34801561036b57600080fd5b50610374611385565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103b757808201518184015260208101905061039c565b505050509050019250505060405180910390f35b3480156103d757600080fd5b5061040c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611413565b005b34801561041a57600080fd5b50610423611634565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a61165a565b604051808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001891515151581526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186600381111561053c57fe5b60ff1681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019c5050505050505050505050505060405180910390f35b3480156105af57600080fd5b506105b8611770565b005b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611efe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063357600080fd5b5061063c611f3c565b005b34801561064a57600080fd5b50610653612070565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a157600080fd5b506106d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612096565b6040518082815260200191505060405180910390f35b3480156106f857600080fd5b506107016120ae565b6040518082815260200191505060405180910390f35b34801561072357600080fd5b5061072c6120b7565b604051808215151515815260200191505060405180910390f35b34801561075257600080fd5b5061075b6120ca565b005b34801561076957600080fd5b506107cd600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035151590602001909291905050506122d4565b005b610803600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af3565b005b34801561081157600080fd5b50610846600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612401565b005b34801561085457600080fd5b50610889600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125b4565b604051808215151515815260200191505060405180910390f35b3480156108af57600080fd5b506108b86125d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090657600080fd5b5061090f6125fa565b005b34801561091d57600080fd5b50610978600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506128e7565b005b34801561098657600080fd5b506109bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b4e565b604051808381526020018281526020019250505060405180910390f35b3480156109e457600080fd5b506109ed612cb3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3b57600080fd5b50610a44612cd9565b005b348015610a5257600080fd5b50610a5b612e92565b6040518082815260200191505060405180910390f35b348015610a7d57600080fd5b50610a86612e98565b6040518082815260200191505060405180910390f35b348015610aa857600080fd5b50610ab1612e9e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000806003811115610b0457fe5b600a60009054906101000a900460ff166003811115610b1f57fe5b141515610bba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f506f6f6c206973206e6f74206f70656e20666f7220636f6e747269627574696f81526020017f6e7300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600760159054906101000a900460ff161580610c1f5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610c93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f57686974656c697374206973206d616e6461746f72790000000000000000000081525060200191505060405180910390fd5b349250610c9f83612ec3565b9150610cab8383612ef5565b1515610d1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4578636565647320746865206d6178436170206f662074686520706f6f6c000081525060200191505060405180910390fd5b6002548310151515610d99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f436f6e747269627574696f6e20746f6f206c6f7700000000000000000000000081525060200191505060405180910390fd5b610dac8284612f2b90919063ffffffff16565b9050610dc381600d54612f4490919063ffffffff16565b600d819055506000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610e7857600c8490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b610eca81600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4490919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf0a23a785306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610ffe57600080fd5b505af1158015611012573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561107e573d6000803e3d6000fd5b507f62722348256371b5147820d6cad90c40fd2da1ccee18c3ed52c0bca5a61dbbab8482604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b600d5481565b600a60009054906101000a900460ff1681565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b8080156112505750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112725761126b6001600954612f4490919063ffffffff16565b6009819055505b801580156112c95750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156112eb576112e46001600954612f2b90919063ffffffff16565b6009819055505b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760149054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6060600c80548060200260200160405190810160405280929190818152602001828054801561140957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116113bf575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b6000600381111561150a57fe5b600a60009054906101000a900460ff16600381111561152557fe5b148061155657506002600381111561153957fe5b600a60009054906101000a900460ff16600381111561155457fe5b145b15156115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f546f6b656e20616464726573732063616e206f6e6c792062652073657420776881526020017f656e206f70656e206f72207472616e736665727265640000000000000000000081525060400191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154600254600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760149054906101000a900460ff16600554600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900460ff16600d54611717600d54600154612f2b90919063ffffffff16565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760159054906101000a900460ff169b509b509b509b509b509b509b509b509b509b509b509b50909192939495969798999a9b565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611926576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f546f6b656e2061646472657373206e6f7420736574000000000000000000000081525060200191505060405180910390fd5b6002600381111561193357fe5b600a60009054906101000a900460ff16600381111561194e57fe5b148061197e575060038081111561196157fe5b600a60009054906101000a900460ff16600381111561197c57fe5b145b15156119f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f496c6c6567616c2073746174650000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b0857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a7461320d565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015611ac6573d6000803e3d6000fd5b50600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b3073ffffffffffffffffffffffffffffffffffffffff163192506000831115611bcb57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f45debf4846040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b158015611bb157600080fd5b505af1158015611bc5573d6000803e3d6000fd5b50505050505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611c8b57600080fd5b505af1158015611c9f573d6000803e3d6000fd5b505050506040513d6020811015611cb557600080fd5b810190808051906020019092919050505090506000811115611eef578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611d9657600080fd5b505af1158015611daa573d6000803e3d6000fd5b505050506040513d6020811015611dc057600080fd5b81019080805190602001909291905050501515611e45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f7472616e73666572206f662074686520746f6b656e206661696c65640000000081525060200191505060405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c6ed8990826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611ed657600080fd5b505af1158015611eea573d6000803e3d6000fd5b505050505b611ef96003612f62565b505050565b600c81815481101515611f0d57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080339150611f8d600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d54612ff8565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3fef3a383836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561205457600080fd5b505af1158015612068573d6000803e3d6000fd5b505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915090505481565b60006001905090565b600760159054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b6121bc613029565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16316122226113885a612f2b90919063ffffffff16565b90604051600060405180830381858888f1935050505015156122d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4572726f72207768656e207472616e7366657272696e6720706f6f6c2066756e81526020017f647300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b600090505b82518110156123fc576123ef83828151811015156123df57fe5b906020019060200201518361110f565b80806001019150506123c5565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b600760149054906101000a900460ff16151515612570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f44657374696e6174696f6e2061646472657373206973206c6f636b656400000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803391506001600381111561260d57fe5b600a60009054906101000a900460ff16600381111561262857fe5b148061265957506000600381111561263c57fe5b600a60009054906101000a900460ff16600381111561265757fe5b145b15156126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f506f6f6c206e6565647320746f206265206f70656e206f722063616e63656c6c81526020017f656400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115156127d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f546865726520617265206e6f20636f6e747269627574696f6e7320666f72207481526020017f686973206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b6127e881600d54612f2b90919063ffffffff16565b600d81905550600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090558173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612877573d6000803e3d6000fd5b507f713b90881ad62c4fa8ab6bd9197fa86481fc0c11b2edba60026514281b2dbac48282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b6129d9613029565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1631612a3f6113885a612f2b90919063ffffffff16565b908360405180828051906020019080838360005b83811015612a6e578082015181840152602081019050612a53565b50505050905090810190601f168015612a9b5780820380516001836020036101000a031916815260200191505b50915050600060405180830381858888f193505050501515612b4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4572726f72207768656e207472616e7366657272696e6720706f6f6c2066756e81526020017f647300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b50565b6000806000612b9e600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d54612ff8565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0d8bf1185836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040805180830381600087803b158015612c6457600080fd5b505af1158015612c78573d6000803e3d6000fd5b505050506040513d6040811015612c8e57600080fd5b8101908080519060200190929190805190602001909291905050509250925050915091565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b60006003811115612dd057fe5b600a60009054906101000a900460ff166003811115612deb57fe5b141515612e86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4f6e6c7920616e206f70656e20504f4f4c2063616e2062652063616e63656c6c81526020017f656400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612e906001612f62565b565b60055481565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612eee600554612ee06103e8856131bf90919063ffffffff16565b6131da90919063ffffffff16565b9050919050565b6000600154612f2183612f1386600d54612f4490919063ffffffff16565b612f2b90919063ffffffff16565b1115905092915050565b6000828211151515612f3957fe5b818303905092915050565b6000808284019050838110151515612f5857fe5b8091505092915050565b6000600a60009054906101000a900460ff16905081600a60006101000a81548160ff02191690836003811115612f9457fe5b02179055507fe8a97ea87e4388fa22d496b95a8ed5ced6717f49790318de2b928aaf37a021d8818360405180836003811115612fcc57fe5b60ff168152602001826003811115612fe057fe5b60ff1681526020019250505060405180910390a15050565b60008161301768056bc75e2d63100000856131da90919063ffffffff16565b81151561302057fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f44657374696e6174696f6e20616464726573732063616e6e6f7420626520656d81526020017f707479000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000600381111561312357fe5b600a60009054906101000a900460ff16600381111561313e57fe5b1415156131b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f43757272656e74207374617465206d757374206265206f70656e00000000000081525060200191505060405180910390fd5b6131bd6002612f62565b565b60008082848115156131cd57fe5b0490508091505092915050565b600080828402905060008414806131fb57508284828115156131f857fe5b04145b151561320357fe5b8091505092915050565b604051610e6b8061321e833901905600608060405234801561001057600080fd5b50604051602080610e6b83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610da7806100c46000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d98e9fc146100b45780637e1c0c09146100df5780638da5cb5b1461010a5780639679529814610161578063a6f9dae1146101b8578063c6ed8990146101fb578063d0d8bf1114610228578063e092985a14610290578063f3fef3a3146102e7578063f45debf414610334578063fc0c546a1461033e575b600080fd5b3480156100c057600080fd5b506100c9610395565b6040518082815260200191505060405180910390f35b3480156100eb57600080fd5b506100f461039b565b6040518082815260200191505060405180910390f35b34801561011657600080fd5b5061011f6103a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016d57600080fd5b506101a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c6565b6040518082815260200191505060405180910390f35b3480156101c457600080fd5b506101f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103de565b005b34801561020757600080fd5b506102266004803603810190808035906020019092919050505061050b565b005b34801561023457600080fd5b50610273600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610613565b604051808381526020018281526020019250505060405180910390f35b34801561029c57600080fd5b506102d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107a1565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610332600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b9565b005b61033c610bb3565b005b34801561034a57600080fd5b50610353610cba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60035481565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61060a81600254610ce090919063ffffffff16565b60028190555050565b600080600080600080600093506000925061063060025488610cfe565b91506000821180156106805750600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482115b156106da576106d7600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610d2f90919063ffffffff16565b93505b6106e660035488610cfe565b90506000811180156107365750600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481115b156107905761078d600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610d2f90919063ffffffff16565b92505b838395509550505050509250929050565b60056020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6108b08484610613565b915091506000821115610ac757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b505050506040513d60208110156109ac57600080fd5b81019080805190602001909291905050501515610a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f7472616e73666572206f662074686520746f6b656e206661696c65640000000081525060200191505060405180910390fd5b610a8382600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000811115610bad578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b16573d6000803e3d6000fd5b50610b6981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cb234600354610ce090919063ffffffff16565b600381905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808284019050838110151515610cf457fe5b8091505092915050565b600068056bc75e2d63100000610d1d8385610d4890919063ffffffff16565b811515610d2657fe5b04905092915050565b6000828211151515610d3d57fe5b818303905092915050565b60008082840290506000841480610d695750828482811515610d6657fe5b04145b1515610d7157fe5b80915050929150505600a165627a7a72305820e32f75d4de7a5c6c6e044469c88d9deb772ff8deacbb05ac91ae23e8df0da8700029a165627a7a723058206d98b99793d2af0938939bb6bc8d1398977ddf2fb324a0e733e8989b95d59fab0029", "storage": { "0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000000000000000000000000000000000000000000003" } }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b33ff7e3fb8776a00000", + "energy": "0x1429e9d8a0e17905191684" + }, "0xb43e7351735eb19c4e7d4ffdde41427a8b9f8885": { "balance": "0x0", - "energy": "0x0", + "energy": "0x15b7feead00", "code": "0x608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063023f4147146101d05780630c3f6acf146101fb5780630cefa4de146102345780630d392cd91461025f5780630e8c4f2c146102ae5780632023c8b2146102dd57806323548b8b14610334578063237819fe1461035f57806326a4e8d2146103cb578063329749511461040e578063370158ea146104655780633a6a4d2e146105a35780633cb5d100146105ba5780633ccfd60b14610627578063412753581461063e57806342e94c901461069557806354fd4d50146106ec578063611b409514610717578063630ad834146107465780636560f8db1461075d57806373e888fd146107cf5780637fa4cacb146108055780639b19251a146108485780639d76ea58146108a3578063b48309da146108fa578063b9c76c1b14610911578063c5b208ff1461097a578063ca325469146109d8578063ea8a1af014610a2f578063f08e258114610a46578063f2624b5d14610a71578063f851a44014610a9c575b600060038111156101a357fe5b600a60009054906101000a900460ff1660038111156101be57fe5b14156101ce576101cd33610af3565b5b005b3480156101dc57600080fd5b506101e56110f0565b6040518082815260200191505060405180910390f35b34801561020757600080fd5b506102106110f6565b6040518082600381111561022057fe5b60ff16815260200191505060405180910390f35b34801561024057600080fd5b50610249611109565b6040518082815260200191505060405180910390f35b34801561026b57600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061110f565b005b3480156102ba57600080fd5b506102c3611346565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2611359565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034057600080fd5b5061034961137f565b6040518082815260200191505060405180910390f35b34801561036b57600080fd5b50610374611385565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103b757808201518184015260208101905061039c565b505050509050019250505060405180910390f35b3480156103d757600080fd5b5061040c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611413565b005b34801561041a57600080fd5b50610423611634565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047157600080fd5b5061047a61165a565b604051808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001891515151581526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186600381111561053c57fe5b60ff1681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019c5050505050505050505050505060405180910390f35b3480156105af57600080fd5b506105b8611770565b005b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611efe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063357600080fd5b5061063c611f3c565b005b34801561064a57600080fd5b50610653612070565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a157600080fd5b506106d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612096565b6040518082815260200191505060405180910390f35b3480156106f857600080fd5b506107016120ae565b6040518082815260200191505060405180910390f35b34801561072357600080fd5b5061072c6120b7565b604051808215151515815260200191505060405180910390f35b34801561075257600080fd5b5061075b6120ca565b005b34801561076957600080fd5b506107cd600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035151590602001909291905050506122d4565b005b610803600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af3565b005b34801561081157600080fd5b50610846600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612401565b005b34801561085457600080fd5b50610889600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125b4565b604051808215151515815260200191505060405180910390f35b3480156108af57600080fd5b506108b86125d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090657600080fd5b5061090f6125fa565b005b34801561091d57600080fd5b50610978600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506128e7565b005b34801561098657600080fd5b506109bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b4e565b604051808381526020018281526020019250505060405180910390f35b3480156109e457600080fd5b506109ed612cb3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3b57600080fd5b50610a44612cd9565b005b348015610a5257600080fd5b50610a5b612e92565b6040518082815260200191505060405180910390f35b348015610a7d57600080fd5b50610a86612e98565b6040518082815260200191505060405180910390f35b348015610aa857600080fd5b50610ab1612e9e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000806003811115610b0457fe5b600a60009054906101000a900460ff166003811115610b1f57fe5b141515610bba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f506f6f6c206973206e6f74206f70656e20666f7220636f6e747269627574696f81526020017f6e7300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600760159054906101000a900460ff161580610c1f5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610c93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f57686974656c697374206973206d616e6461746f72790000000000000000000081525060200191505060405180910390fd5b349250610c9f83612ec3565b9150610cab8383612ef5565b1515610d1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4578636565647320746865206d6178436170206f662074686520706f6f6c000081525060200191505060405180910390fd5b6002548310151515610d99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f436f6e747269627574696f6e20746f6f206c6f7700000000000000000000000081525060200191505060405180910390fd5b610dac8284612f2b90919063ffffffff16565b9050610dc381600d54612f4490919063ffffffff16565b600d819055506000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415610e7857600c8490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b610eca81600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f4490919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf0a23a785306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610ffe57600080fd5b505af1158015611012573d6000803e3d6000fd5b50505050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561107e573d6000803e3d6000fd5b507f62722348256371b5147820d6cad90c40fd2da1ccee18c3ed52c0bca5a61dbbab8482604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b600d5481565b600a60009054906101000a900460ff1681565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b8080156112505750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112725761126b6001600954612f4490919063ffffffff16565b6009819055505b801580156112c95750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156112eb576112e46001600954612f2b90919063ffffffff16565b6009819055505b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760149054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6060600c80548060200260200160405190810160405280929190818152602001828054801561140957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116113bf575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b6000600381111561150a57fe5b600a60009054906101000a900460ff16600381111561152557fe5b148061155657506002600381111561153957fe5b600a60009054906101000a900460ff16600381111561155457fe5b145b15156115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f546f6b656e20616464726573732063616e206f6e6c792062652073657420776881526020017f656e206f70656e206f72207472616e736665727265640000000000000000000081525060400191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154600254600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760149054906101000a900460ff16600554600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900460ff16600d54611717600d54600154612f2b90919063ffffffff16565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760159054906101000a900460ff169b509b509b509b509b509b509b509b509b509b509b509b50909192939495969798999a9b565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611926576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f546f6b656e2061646472657373206e6f7420736574000000000000000000000081525060200191505060405180910390fd5b6002600381111561193357fe5b600a60009054906101000a900460ff16600381111561194e57fe5b148061197e575060038081111561196157fe5b600a60009054906101000a900460ff16600381111561197c57fe5b145b15156119f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f496c6c6567616c2073746174650000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b0857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a7461320d565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015611ac6573d6000803e3d6000fd5b50600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b3073ffffffffffffffffffffffffffffffffffffffff163192506000831115611bcb57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f45debf4846040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b158015611bb157600080fd5b505af1158015611bc5573d6000803e3d6000fd5b50505050505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611c8b57600080fd5b505af1158015611c9f573d6000803e3d6000fd5b505050506040513d6020811015611cb557600080fd5b810190808051906020019092919050505090506000811115611eef578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611d9657600080fd5b505af1158015611daa573d6000803e3d6000fd5b505050506040513d6020811015611dc057600080fd5b81019080805190602001909291905050501515611e45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f7472616e73666572206f662074686520746f6b656e206661696c65640000000081525060200191505060405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c6ed8990826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015611ed657600080fd5b505af1158015611eea573d6000803e3d6000fd5b505050505b611ef96003612f62565b505050565b600c81815481101515611f0d57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080339150611f8d600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d54612ff8565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3fef3a383836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561205457600080fd5b505af1158015612068573d6000803e3d6000fd5b505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915090505481565b60006001905090565b600760159054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b6121bc613029565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16316122226113885a612f2b90919063ffffffff16565b90604051600060405180830381858888f1935050505015156122d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4572726f72207768656e207472616e7366657272696e6720706f6f6c2066756e81526020017f647300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b600090505b82518110156123fc576123ef83828151811015156123df57fe5b906020019060200201518361110f565b80806001019150506123c5565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b600760149054906101000a900460ff16151515612570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f44657374696e6174696f6e2061646472657373206973206c6f636b656400000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803391506001600381111561260d57fe5b600a60009054906101000a900460ff16600381111561262857fe5b148061265957506000600381111561263c57fe5b600a60009054906101000a900460ff16600381111561265757fe5b145b15156126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f506f6f6c206e6565647320746f206265206f70656e206f722063616e63656c6c81526020017f656400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115156127d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f546865726520617265206e6f20636f6e747269627574696f6e7320666f72207481526020017f686973206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b6127e881600d54612f2b90919063ffffffff16565b600d81905550600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090558173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612877573d6000803e3d6000fd5b507f713b90881ad62c4fa8ab6bd9197fa86481fc0c11b2edba60026514281b2dbac48282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b6129d9613029565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1631612a3f6113885a612f2b90919063ffffffff16565b908360405180828051906020019080838360005b83811015612a6e578082015181840152602081019050612a53565b50505050905090810190601f168015612a9b5780820380516001836020036101000a031916815260200191505b50915050600060405180830381858888f193505050501515612b4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4572726f72207768656e207472616e7366657272696e6720706f6f6c2066756e81526020017f647300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b50565b6000806000612b9e600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d54612ff8565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0d8bf1185836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040805180830381600087803b158015612c6457600080fd5b505af1158015612c78573d6000803e3d6000fd5b505050506040513d6040811015612c8e57600080fd5b8101908080519060200190929190805190602001909291905050509250925050915091565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f6e6c792074686520706f6f6c2061646d696e20697320616c6c6f776564207481526020017f6f2065786563757465207468697300000000000000000000000000000000000081525060400191505060405180910390fd5b60006003811115612dd057fe5b600a60009054906101000a900460ff166003811115612deb57fe5b141515612e86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4f6e6c7920616e206f70656e20504f4f4c2063616e2062652063616e63656c6c81526020017f656400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612e906001612f62565b565b60055481565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612eee600554612ee06103e8856131bf90919063ffffffff16565b6131da90919063ffffffff16565b9050919050565b6000600154612f2183612f1386600d54612f4490919063ffffffff16565b612f2b90919063ffffffff16565b1115905092915050565b6000828211151515612f3957fe5b818303905092915050565b6000808284019050838110151515612f5857fe5b8091505092915050565b6000600a60009054906101000a900460ff16905081600a60006101000a81548160ff02191690836003811115612f9457fe5b02179055507fe8a97ea87e4388fa22d496b95a8ed5ced6717f49790318de2b928aaf37a021d8818360405180836003811115612fcc57fe5b60ff168152602001826003811115612fe057fe5b60ff1681526020019250505060405180910390a15050565b60008161301768056bc75e2d63100000856131da90919063ffffffff16565b81151561302057fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f44657374696e6174696f6e20616464726573732063616e6e6f7420626520656d81526020017f707479000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000600381111561312357fe5b600a60009054906101000a900460ff16600381111561313e57fe5b1415156131b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f43757272656e74207374617465206d757374206265206f70656e00000000000081525060200191505060405180910390fd5b6131bd6002612f62565b565b60008082848115156131cd57fe5b0490508091505092915050565b600080828402905060008414806131fb57508284828115156131f857fe5b04145b151561320357fe5b8091505092915050565b604051610e6b8061321e833901905600608060405234801561001057600080fd5b50604051602080610e6b83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610da7806100c46000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d98e9fc146100b45780637e1c0c09146100df5780638da5cb5b1461010a5780639679529814610161578063a6f9dae1146101b8578063c6ed8990146101fb578063d0d8bf1114610228578063e092985a14610290578063f3fef3a3146102e7578063f45debf414610334578063fc0c546a1461033e575b600080fd5b3480156100c057600080fd5b506100c9610395565b6040518082815260200191505060405180910390f35b3480156100eb57600080fd5b506100f461039b565b6040518082815260200191505060405180910390f35b34801561011657600080fd5b5061011f6103a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016d57600080fd5b506101a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c6565b6040518082815260200191505060405180910390f35b3480156101c457600080fd5b506101f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103de565b005b34801561020757600080fd5b506102266004803603810190808035906020019092919050505061050b565b005b34801561023457600080fd5b50610273600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610613565b604051808381526020018281526020019250505060405180910390f35b34801561029c57600080fd5b506102d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107a1565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610332600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b9565b005b61033c610bb3565b005b34801561034a57600080fd5b50610353610cba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60035481565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61060a81600254610ce090919063ffffffff16565b60028190555050565b600080600080600080600093506000925061063060025488610cfe565b91506000821180156106805750600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482115b156106da576106d7600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610d2f90919063ffffffff16565b93505b6106e660035488610cfe565b90506000811180156107365750600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481115b156107905761078d600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610d2f90919063ffffffff16565b92505b838395509550505050509250929050565b60056020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6108b08484610613565b915091506000821115610ac757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b505050506040513d60208110156109ac57600080fd5b81019080805190602001909291905050501515610a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f7472616e73666572206f662074686520746f6b656e206661696c65640000000081525060200191505060405180910390fd5b610a8382600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000811115610bad578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b16573d6000803e3d6000fd5b50610b6981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cb234600354610ce090919063ffffffff16565b600381905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808284019050838110151515610cf457fe5b8091505092915050565b600068056bc75e2d63100000610d1d8385610d4890919063ffffffff16565b811515610d2657fe5b04905092915050565b6000828211151515610d3d57fe5b818303905092915050565b60008082840290506000841480610d695750828482811515610d6657fe5b04145b1515610d7157fe5b80915050929150505600a165627a7a72305820e32f75d4de7a5c6c6e044469c88d9deb772ff8deacbb05ac91ae23e8df0da8700029a165627a7a723058206d98b99793d2af0938939bb6bc8d1398977ddf2fb324a0e733e8989b95d59fab0029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000b8c73790e4fbfdc3e879af1b43fadc2a9d43a1e1", @@ -40,38 +47,38 @@ }, "0xb8c73790e4fbfdc3e879af1b43fadc2a9d43a1e1": { "balance": "0x1fbe36d444739472d28", - "energy": "0x0" + "energy": "0x9d1301b1bc74c8a5adb" } }, "calls": { - "type": "CALL", "from": "0xb8c73790e4fbfdc3e879af1b43fadc2a9d43a1e1", - "to": "0xb43e7351735eb19c4e7d4ffdde41427a8b9f8885", - "value": "0x0", "gas": "0x169048", "gasUsed": "0xc2faf", + "to": "0xb43e7351735eb19c4e7d4ffdde41427a8b9f8885", "input": "0x3a6a4d2e", "error": "execution reverted", "calls": [ { - "type": "CREATE", "from": "0xb43e7351735eb19c4e7d4ffdde41427a8b9f8885", - "to": "0xb57e5eec21ba71fd62a56c79f1ed3196ea6059a5", - "value": "0x0", "gas": "0x15b0ec", "gasUsed": "0xb4c01", + "to": "0xb57e5eec21ba71fd62a56c79f1ed3196ea6059a5", "input": "0x608060405234801561001057600080fd5b50604051602080610e6b83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610da7806100c46000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d98e9fc146100b45780637e1c0c09146100df5780638da5cb5b1461010a5780639679529814610161578063a6f9dae1146101b8578063c6ed8990146101fb578063d0d8bf1114610228578063e092985a14610290578063f3fef3a3146102e7578063f45debf414610334578063fc0c546a1461033e575b600080fd5b3480156100c057600080fd5b506100c9610395565b6040518082815260200191505060405180910390f35b3480156100eb57600080fd5b506100f461039b565b6040518082815260200191505060405180910390f35b34801561011657600080fd5b5061011f6103a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016d57600080fd5b506101a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c6565b6040518082815260200191505060405180910390f35b3480156101c457600080fd5b506101f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103de565b005b34801561020757600080fd5b506102266004803603810190808035906020019092919050505061050b565b005b34801561023457600080fd5b50610273600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610613565b604051808381526020018281526020019250505060405180910390f35b34801561029c57600080fd5b506102d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107a1565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610332600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b9565b005b61033c610bb3565b005b34801561034a57600080fd5b50610353610cba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60035481565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61060a81600254610ce090919063ffffffff16565b60028190555050565b600080600080600080600093506000925061063060025488610cfe565b91506000821180156106805750600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482115b156106da576106d7600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610d2f90919063ffffffff16565b93505b6106e660035488610cfe565b90506000811180156107365750600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481115b156107905761078d600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610d2f90919063ffffffff16565b92505b838395509550505050509250929050565b60056020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6108b08484610613565b915091506000821115610ac757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b505050506040513d60208110156109ac57600080fd5b81019080805190602001909291905050501515610a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f7472616e73666572206f662074686520746f6b656e206661696c65640000000081525060200191505060405180910390fd5b610a8382600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000811115610bad578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b16573d6000803e3d6000fd5b50610b6981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cb234600354610ce090919063ffffffff16565b600381905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808284019050838110151515610cf457fe5b8091505092915050565b600068056bc75e2d63100000610d1d8385610d4890919063ffffffff16565b811515610d2657fe5b04905092915050565b6000828211151515610d3d57fe5b818303905092915050565b60008082840290506000841480610d695750828482811515610d6657fe5b04145b1515610d7157fe5b80915050929150505600a165627a7a72305820e32f75d4de7a5c6c6e044469c88d9deb772ff8deacbb05ac91ae23e8df0da870002900000000000000000000000031af8335efbba7aaed29aeadeb47ea86f586ceb9", - "output": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d98e9fc146100b45780637e1c0c09146100df5780638da5cb5b1461010a5780639679529814610161578063a6f9dae1146101b8578063c6ed8990146101fb578063d0d8bf1114610228578063e092985a14610290578063f3fef3a3146102e7578063f45debf414610334578063fc0c546a1461033e575b600080fd5b3480156100c057600080fd5b506100c9610395565b6040518082815260200191505060405180910390f35b3480156100eb57600080fd5b506100f461039b565b6040518082815260200191505060405180910390f35b34801561011657600080fd5b5061011f6103a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016d57600080fd5b506101a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c6565b6040518082815260200191505060405180910390f35b3480156101c457600080fd5b506101f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103de565b005b34801561020757600080fd5b506102266004803603810190808035906020019092919050505061050b565b005b34801561023457600080fd5b50610273600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610613565b604051808381526020018281526020019250505060405180910390f35b34801561029c57600080fd5b506102d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107a1565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610332600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b9565b005b61033c610bb3565b005b34801561034a57600080fd5b50610353610cba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60035481565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61060a81600254610ce090919063ffffffff16565b60028190555050565b600080600080600080600093506000925061063060025488610cfe565b91506000821180156106805750600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482115b156106da576106d7600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610d2f90919063ffffffff16565b93505b6106e660035488610cfe565b90506000811180156107365750600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481115b156107905761078d600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610d2f90919063ffffffff16565b92505b838395509550505050509250929050565b60056020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6108b08484610613565b915091506000821115610ac757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b505050506040513d60208110156109ac57600080fd5b81019080805190602001909291905050501515610a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f7472616e73666572206f662074686520746f6b656e206661696c65640000000081525060200191505060405180910390fd5b610a8382600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000811115610bad578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b16573d6000803e3d6000fd5b50610b6981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cb234600354610ce090919063ffffffff16565b600381905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808284019050838110151515610cf457fe5b8091505092915050565b600068056bc75e2d63100000610d1d8385610d4890919063ffffffff16565b811515610d2657fe5b04905092915050565b6000828211151515610d3d57fe5b818303905092915050565b60008082840290506000841480610d695750828482811515610d6657fe5b04145b1515610d7157fe5b80915050929150505600a165627a7a72305820e32f75d4de7a5c6c6e044469c88d9deb772ff8deacbb05ac91ae23e8df0da8700029" + "output": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d98e9fc146100b45780637e1c0c09146100df5780638da5cb5b1461010a5780639679529814610161578063a6f9dae1146101b8578063c6ed8990146101fb578063d0d8bf1114610228578063e092985a14610290578063f3fef3a3146102e7578063f45debf414610334578063fc0c546a1461033e575b600080fd5b3480156100c057600080fd5b506100c9610395565b6040518082815260200191505060405180910390f35b3480156100eb57600080fd5b506100f461039b565b6040518082815260200191505060405180910390f35b34801561011657600080fd5b5061011f6103a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016d57600080fd5b506101a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c6565b6040518082815260200191505060405180910390f35b3480156101c457600080fd5b506101f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103de565b005b34801561020757600080fd5b506102266004803603810190808035906020019092919050505061050b565b005b34801561023457600080fd5b50610273600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610613565b604051808381526020018281526020019250505060405180910390f35b34801561029c57600080fd5b506102d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107a1565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610332600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b9565b005b61033c610bb3565b005b34801561034a57600080fd5b50610353610cba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60035481565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61060a81600254610ce090919063ffffffff16565b60028190555050565b600080600080600080600093506000925061063060025488610cfe565b91506000821180156106805750600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482115b156106da576106d7600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610d2f90919063ffffffff16565b93505b6106e660035488610cfe565b90506000811180156107365750600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481115b156107905761078d600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610d2f90919063ffffffff16565b92505b838395509550505050509250929050565b60056020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6108b08484610613565b915091506000821115610ac757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b505050506040513d60208110156109ac57600080fd5b81019080805190602001909291905050501515610a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f7472616e73666572206f662074686520746f6b656e206661696c65640000000081525060200191505060405180910390fd5b610a8382600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000811115610bad578373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b16573d6000803e3d6000fd5b50610b6981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ce090919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4f6e6c7920746865206f776e657220697320616c6c6f77656420746f2065786581526020017f637574652074686973000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610cb234600354610ce090919063ffffffff16565b600381905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808284019050838110151515610cf457fe5b8091505092915050565b600068056bc75e2d63100000610d1d8385610d4890919063ffffffff16565b811515610d2657fe5b04905092915050565b6000828211151515610d3d57fe5b818303905092915050565b60008082840290506000841480610d695750828482811515610d6657fe5b04145b1515610d7157fe5b80915050929150505600a165627a7a72305820e32f75d4de7a5c6c6e044469c88d9deb772ff8deacbb05ac91ae23e8df0da8700029", + "value": "0x0", + "type": "CREATE" }, { - "type": "CALL", "from": "0xb43e7351735eb19c4e7d4ffdde41427a8b9f8885", - "to": "0x31af8335efbba7aaed29aeadeb47ea86f586ceb9", - "value": "0x0", "gas": "0xa3b84", "gasUsed": "0x439", - "input": "0x70a08231000000000000000000000000b43e7351735eb19c4e7d4ffdde41427a8b9f8885" + "to": "0x31af8335efbba7aaed29aeadeb47ea86f586ceb9", + "input": "0x70a08231000000000000000000000000b43e7351735eb19c4e7d4ffdde41427a8b9f8885", + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/testdata/create_oog.json b/tracers/testdata/create_oog.json index 9d38dbdcf..e383cf313 100644 --- a/tracers/testdata/create_oog.json +++ b/tracers/testdata/create_oog.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 612742, + "blockID": "0x0009598635bd18559ada01c72bfb7260fd6f42dd063c5cfb4344aedf0a420e6d", + "blockTime": 1536143890, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed", "clauseIndex": 0, - "txID": "0x5b7331ccad1339276dacd634ab501900ec064c5efab3c11cf35eea31ce95b77f" + "txID": "0x5b7331ccad1339276dacd634ab501900ec064c5efab3c11cf35eea31ce95b77f", + "gas": "0x100dcc" }, "clause": { "to": null, @@ -11,25 +14,34 @@ "data": "0x60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600581526020017f4649584544000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000221565b506040805190810160405280601a81526020017f4578616d706c6520466978656420537570706c7920546f6b656e00000000000081525060039080519060200190620000ed92919062000221565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a620f424002600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3620002d0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026457805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029457825182559160200191906001019062000277565b5b509050620002a49190620002a8565b5090565b620002cd91905b80821115620002c9576000816000905550600101620002af565b5090565b90565b6114e380620002e06000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a7230582050797796a1ac7ff35050479b3b14b482b627fd1a62831046c7a73e228b4ad4de0029" }, "state": { - "0x62084b5efbda519edf3dd011d5860e8e99f02a8e":{ - "balance":"0x0", - "energy":"0x0", - "storage":{ - "0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000002":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000003":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000004":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000005":"0x0000000000000000000000000000000000000000000000000000000000000000","0x419f0f163f951c09f36e9648a123c0d007bc0bd9316bc982404f01cf91a28ef6":"0x0000000000000000000000000000000000000000000000000000000000000000" + "0x62084b5efbda519edf3dd011d5860e8e99f02a8e": { + "balance": "0x0", + "energy": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x419f0f163f951c09f36e9648a123c0d007bc0bd9316bc982404f01cf91a28ef6": "0x0000000000000000000000000000000000000000000000000000000000000000" } }, "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed": { "balance": "0x850802dba604c9a04e2a", - "energy": "0x0" + "energy": "0x3fa4e7a77564ddc23dcaa" + }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b33ff7e3fb8776a00000", + "energy": "0x335e629d0d313759fa737" } }, "calls": { - "type": "CREATE", "from": "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed", - "value": "0x0", "gas": "0x100dcc", "gasUsed": "0x100dcc", "input": "0x60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600581526020017f4649584544000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000221565b506040805190810160405280601a81526020017f4578616d706c6520466978656420537570706c7920546f6b656e00000000000081525060039080519060200190620000ed92919062000221565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a620f424002600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3620002d0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026457805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029457825182559160200191906001019062000277565b5b509050620002a49190620002a8565b5090565b620002cd91905b80821115620002c9576000816000905550600101620002af565b5090565b90565b6114e380620002e06000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a7230582050797796a1ac7ff35050479b3b14b482b627fd1a62831046c7a73e228b4ad4de0029", - "error": "contract creation code storage out of gas" + "error": "contract creation code storage out of gas", + "value": "0x0", + "type": "CREATE" } } \ No newline at end of file diff --git a/tracers/testdata/deep.json b/tracers/testdata/deep.json index 6838f5975..2066e43d6 100644 --- a/tracers/testdata/deep.json +++ b/tracers/testdata/deep.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 15490, + "blockID": "0x00003c82567d8e90d05704f600ced34e9b9f7ac3091631a5c50fae032c883b7d", + "blockTime": 1530169300, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed", "clauseIndex": 0, - "txID": "0x206a05ff2db3f86cd9cbdc09f26ea715b21ce5286290c01a78fbc2c240c5d51e" + "txID": "0x206a05ff2db3f86cd9cbdc09f26ea715b21ce5286290c01a78fbc2c240c5d51e", + "gas": "0x20df56" }, "clause": { "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", @@ -13,2343 +16,2347 @@ "state": { "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed": { "balance": "0x152d02c7e14af6800000", - "energy":"0x0" + "energy": "0xd27689432b2c80f80000" }, "0xa1118c817b44c2ad154229a34f00b1af5ba48394": { "balance": "0x0", - "energy":"0x0", + "energy": "0x0", "code": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063967e6e651461005c578063f518904814610087578063f9ea5e79146100ca575b600080fd5b34801561006857600080fd5b50610071610151565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015a565b005b3480156100d657600080fd5b5061013b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506101df565b6040518082815260200191505060405180910390f35b60008054905090565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663416ad2b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156101c357600080fd5b505af11580156101d7573d6000803e3d6000fd5b505050505050565b600080600081546001019190508190559050929150505600a165627a7a7230582072a3a4f41df2e25405f0df2b19c07fa43c91df02a01d7ad7a66bf7deed99c6860029" }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14adf4b7320334b9000000", + "energy": "0x45cf317c0611a2638fe" + }, "0xd73a9b349dc06b12301d5968ac333f69d112841a": { "balance": "0x0", - "energy":"0x0", + "energy": "0x0", "code": "0x608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063416ad2b51461007d578063a92100cb14610094578063d11f17ad146100ab578063d9f51ebf14610106578063f8a8fd6d1461016f578063fc32d7371461019a575b600080fd5b34801561008957600080fd5b506100926101b1565b005b3480156100a057600080fd5b506100a9610285565b005b3480156100b757600080fd5b506100ec600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102b3565b604051808215151515815260200191505060405180910390f35b34801561011257600080fd5b5061011b6103a5565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561017b57600080fd5b506101846103e7565b6040518082815260200191505060405180910390f35b3480156101a657600080fd5b506101af6103f5565b005b60008073a1118c817b44c2ad154229a34f00b1af5ba4839491508190508073ffffffffffffffffffffffffffffffffffffffff1663f5189048306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561026957600080fd5b505af115801561027d573d6000803e3d6000fd5b505050505050565b60008090505b60648110156102b057600a818115156102a057fe5b069050808060010191505061028b565b50565b60008060405180807f696e63726561736541676528737472696e672c75696e74323536290000000000815250601b019050604051809103902090508273ffffffffffffffffffffffffffffffffffffffff16817c0100000000000000000000000000000000000000000000000000000000900460016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180807f6a61636b000000000000000000000000000000000000000000000000000000008152506020018260ff1681526020019150506000604051808303816000875af192505050915050919050565b60008033905060405180807f696e63726561736541676528737472696e672c75696e74323536290000000000815250601b019050604051809103902091505090565b600080606490508091505090565b6103fd6103f5565b5600a165627a7a723058203554e9ce6726c60f2bf8e3d902a21ffdf86dde6478513a220ef475b6cbc104060029" } }, "calls": { - "type": "CALL", "from": "0x7567d83b7b8d80addcb281a71d54fc7b3364ffed", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x20df56", "gasUsed": "0x529af", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x205552", "gasUsed": "0x522e7", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1fcd57", "gasUsed": "0x51c00", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1f479b", "gasUsed": "0x51538", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1ec3d7", "gasUsed": "0x50e51", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1e4241", "gasUsed": "0x50789", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1dc292", "gasUsed": "0x500a2", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1d4501", "gasUsed": "0x4f9da", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1cc947", "gasUsed": "0x4f2f3", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1c4f9b", "gasUsed": "0x4ec2b", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1bd7b7", "gasUsed": "0x4e544", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1b61d1", "gasUsed": "0x4de7c", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1aeda4", "gasUsed": "0x4d795", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1a7b66", "gasUsed": "0x4d0cd", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1a0ad3", "gasUsed": "0x4c9e6", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x199c21", "gasUsed": "0x4c31e", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x192f0b", "gasUsed": "0x4bc37", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x18c3c8", "gasUsed": "0x4b56f", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x185a13", "gasUsed": "0x4ae88", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x17f224", "gasUsed": "0x4a7c0", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x178bb6", "gasUsed": "0x4a0d9", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x172700", "gasUsed": "0x49a11", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x16c3bf", "gasUsed": "0x4932a", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x166229", "gasUsed": "0x48c62", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1601fb", "gasUsed": "0x4857b", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x15a36c", "gasUsed": "0x47eb3", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x154639", "gasUsed": "0x477cc", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x14ea99", "gasUsed": "0x47104", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x149049", "gasUsed": "0x46a1d", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x143781", "gasUsed": "0x46355", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x13dffd", "gasUsed": "0x45c6e", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1389f6", "gasUsed": "0x455a6", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x133529", "gasUsed": "0x44ebf", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x12e1cd", "gasUsed": "0x447f7", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x128fa0", "gasUsed": "0x44110", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x123edb", "gasUsed": "0x43a48", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x11ef3a", "gasUsed": "0x43361", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x11a0f6", "gasUsed": "0x42c99", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1153cd", "gasUsed": "0x425b2", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1107f7", "gasUsed": "0x41eea", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x10bd32", "gasUsed": "0x41803", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1073b6", "gasUsed": "0x4113b", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x102b42", "gasUsed": "0x40a54", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xfe40e", "gasUsed": "0x4038c", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xf9dd8", "gasUsed": "0x3fca5", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xf58da", "gasUsed": "0x3f5dd", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xf14d1", "gasUsed": "0x3eef6", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xed1f7", "gasUsed": "0x3e82e", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xe900a", "gasUsed": "0x3e147", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xe4f43", "gasUsed": "0x3da7f", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xe0f60", "gasUsed": "0x3d398", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xdd09c", "gasUsed": "0x3ccd0", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xd92b4", "gasUsed": "0x3c5e9", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xd55e2", "gasUsed": "0x3bf21", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xd19e5", "gasUsed": "0x3b83a", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xcdef6", "gasUsed": "0x3b172", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xca4d5", "gasUsed": "0x3aa8b", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xc6bbb", "gasUsed": "0x3a3c3", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xc3367", "gasUsed": "0x39cdc", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xbfc12", "gasUsed": "0x39614", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xbc57c", "gasUsed": "0x38f2d", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xb8fdf", "gasUsed": "0x38865", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xb5afa", "gasUsed": "0x3817e", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xb2707", "gasUsed": "0x37ab6", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xaf3c5", "gasUsed": "0x373cf", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xac16f", "gasUsed": "0x36d07", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xa8fc4", "gasUsed": "0x36620", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xa5efe", "gasUsed": "0x35f58", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xa2edd", "gasUsed": "0x35871", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x9ff9b", "gasUsed": "0x351a9", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x9d0f7", "gasUsed": "0x34ac2", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x9a32c", "gasUsed": "0x343fa", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x975fa", "gasUsed": "0x33d13", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x9499b", "gasUsed": "0x3364b", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x91dcf", "gasUsed": "0x32f64", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x8f2d1", "gasUsed": "0x3289c", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x8c860", "gasUsed": "0x321b5", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x89eb8", "gasUsed": "0x31aed", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x87598", "gasUsed": "0x31406", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x84d3b", "gasUsed": "0x30d3e", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x82561", "gasUsed": "0x30657", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x7fe45", "gasUsed": "0x2ff8f", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x7d7a6", "gasUsed": "0x2f8a8", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x7b1c0", "gasUsed": "0x2f1e0", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x78c54", "gasUsed": "0x2eaf9", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x7679c", "gasUsed": "0x2e431", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x74358", "gasUsed": "0x2dd4a", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x71fc4", "gasUsed": "0x2d682", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x6fc9f", "gasUsed": "0x2cf9b", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x6da26", "gasUsed": "0x2c8d3", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x6b818", "gasUsed": "0x2c1ec", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x696b1", "gasUsed": "0x2bb24", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x675b1", "gasUsed": "0x2b43d", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x65553", "gasUsed": "0x2ad75", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x63558", "gasUsed": "0x2a68e", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x615fc", "gasUsed": "0x29fc6", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x5f6ff", "gasUsed": "0x298df", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x5d89c", "gasUsed": "0x29217", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x5ba94", "gasUsed": "0x28b30", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x59d23", "gasUsed": "0x28468", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x58009", "gasUsed": "0x27d81", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x56382", "gasUsed": "0x276b9", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x5474e", "gasUsed": "0x26fd2", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x52baa", "gasUsed": "0x2690a", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x51056", "gasUsed": "0x26223", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x4f58e", "gasUsed": "0x25b5b", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x4db12", "gasUsed": "0x25474", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x4c11f", "gasUsed": "0x24dac", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x4a775", "gasUsed": "0x246c5", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x48e50", "gasUsed": "0x23ffd", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x47571", "gasUsed": "0x23916", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x45d14", "gasUsed": "0x2324e", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x444fa", "gasUsed": "0x22b67", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x42d5f", "gasUsed": "0x2249f", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x41604", "gasUsed": "0x21db8", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x3ff25", "gasUsed": "0x216f0", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x3e883", "gasUsed": "0x21009", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x3d25a", "gasUsed": "0x20941", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x3bc6b", "gasUsed": "0x2025a", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x3a6f2", "gasUsed": "0x1fb92", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x391b1", "gasUsed": "0x1f4ab", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x37ce3", "gasUsed": "0x1ede3", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x3684a", "gasUsed": "0x1e6fc", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x35422", "gasUsed": "0x1e034", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x3402c", "gasUsed": "0x1d94d", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x32ca4", "gasUsed": "0x1d285", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x3194c", "gasUsed": "0x1cb9e", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x30660", "gasUsed": "0x1c4d6", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x2f3a1", "gasUsed": "0x1bdef", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x2e14c", "gasUsed": "0x1b727", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x2cf21", "gasUsed": "0x1b040", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x2bd5e", "gasUsed": "0x1a978", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x2abc3", "gasUsed": "0x1a291", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x29a8d", "gasUsed": "0x19bc9", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x2897d", "gasUsed": "0x194e2", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x278d0", "gasUsed": "0x18e1a", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x26847", "gasUsed": "0x18733", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x2581f", "gasUsed": "0x1806b", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x24819", "gasUsed": "0x17984", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x23872", "gasUsed": "0x172bc", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x228eb", "gasUsed": "0x16bd5", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x219c0", "gasUsed": "0x1650d", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x20ab4", "gasUsed": "0x15e26", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1fc02", "gasUsed": "0x1575e", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1ed6c", "gasUsed": "0x15077", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1df2f", "gasUsed": "0x149af", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1d10d", "gasUsed": "0x142c8", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1c342", "gasUsed": "0x13c00", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1b58f", "gasUsed": "0x13519", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1a832", "gasUsed": "0x12e51", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x19aec", "gasUsed": "0x1276a", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x18df9", "gasUsed": "0x120a2", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x1811c", "gasUsed": "0x119bb", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x17491", "gasUsed": "0x112f3", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x16819", "gasUsed": "0x10c0c", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x15bf2", "gasUsed": "0x10544", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x14fdd", "gasUsed": "0xfe5d", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x14417", "gasUsed": "0xf795", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x13861", "gasUsed": "0xf0ae", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x12cf9", "gasUsed": "0xe9e6", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x121a0", "gasUsed": "0xe2ff", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x11693", "gasUsed": "0xdc37", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x10b93", "gasUsed": "0xd550", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x100de", "gasUsed": "0xce88", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xf635", "gasUsed": "0xc7a1", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xebd5", "gasUsed": "0xc0d9", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xe180", "gasUsed": "0xb9f2", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xd773", "gasUsed": "0xb32a", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xcd70", "gasUsed": "0xac43", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xc3b3", "gasUsed": "0xa57b", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xb9ff", "gasUsed": "0x9e94", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xb090", "gasUsed": "0x97cc", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0xa728", "gasUsed": "0x90e5", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x9e04", "gasUsed": "0x8a1d", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x94e6", "gasUsed": "0x8336", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x8c0b", "gasUsed": "0x7c6e", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x8335", "gasUsed": "0x7587", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x7aa1", "gasUsed": "0x6ebf", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x7211", "gasUsed": "0x67d8", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x69c2", "gasUsed": "0x6110", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x6175", "gasUsed": "0x5a29", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x5968", "gasUsed": "0x5361", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x515d", "gasUsed": "0x4c7a", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x4991", "gasUsed": "0x45b2", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x41c5", "gasUsed": "0x3ecb", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x3a37", "gasUsed": "0x3803", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x32a9", "gasUsed": "0x311c", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x2b57", "gasUsed": "0x2a54", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x2404", "gasUsed": "0x236d", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x1ced", "gasUsed": "0x1ca5", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x15d4", "gasUsed": "0x15be", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "execution reverted", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0xef6", "gasUsed": "0xef6", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", "error": "out of gas", "calls": [ { - "type": "CALL", "from": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "value": "0x0", "gas": "0x815", "gasUsed": "0x815", + "to": "0xd73a9b349dc06b12301d5968ac333f69d112841a", "input": "0x416ad2b5", "error": "out of gas", "calls": [ { - "type": "CALL", "from": "0xd73a9b349dc06b12301d5968ac333f69d112841a", - "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", - "value": "0x0", "gas": "0x16e", "gasUsed": "0x16e", + "to": "0xa1118c817b44c2ad154229a34f00b1af5ba48394", "input": "0xf5189048000000000000000000000000d73a9b349dc06b12301d5968ac333f69d112841a", - "error": "out of gas" + "error": "out of gas", + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x0", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/testdata/insufficient_balance.json b/tracers/testdata/insufficient_balance.json index ca7e5c083..80e96c362 100644 --- a/tracers/testdata/insufficient_balance.json +++ b/tracers/testdata/insufficient_balance.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 42653, + "blockID": "0x0000a69d775ef9333cabee3313b7396a887c671c80e6e4206b3abca80c7f0cf0", + "blockTime": 1530440930, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0xa7df76f0b8e0d191c5f27563720d1edcd76876db", "clauseIndex": 0, - "txID": "0x8cbb5bbc3c4f7850eb75e884933ab41f1e35e398c5b423bf347c3365bd39bf84" + "txID": "0x8cbb5bbc3c4f7850eb75e884933ab41f1e35e398c5b423bf347c3365bd39bf84", + "gas": "0x0" }, "clause": { "to": "0x9e9732322b301b489f2d8bd28443cf2599024a92", @@ -13,21 +16,25 @@ "state": { "0x9e9732322b301b489f2d8bd28443cf2599024a92": { "balance": "0x7f0e22963fbc9d737000", - "energy":"0x0" + "energy": "0x1c30cfc5a47fd8440" }, "0xa7df76f0b8e0d191c5f27563720d1edcd76876db": { "balance": "0x853a9ea7faea000", - "energy":"0x0" + "energy": "0x1232c8bba6493792a50" + }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14adf4b7320334b9000000", + "energy": "0xd4637703240c1250b82" } }, "calls": { - "type": "CALL", "from": "0xa7df76f0b8e0d191c5f27563720d1edcd76876db", - "to": "0x9e9732322b301b489f2d8bd28443cf2599024a92", - "value": "0x9b6e64a8ec60000", "gas": "0x0", "gasUsed": "0x0", + "to": "0x9e9732322b301b489f2d8bd28443cf2599024a92", "input": "0x", - "error": "insufficient balance for transfer" + "error": "insufficient balance for transfer", + "value": "0x9b6e64a8ec60000", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/testdata/out_of_gas.json b/tracers/testdata/out_of_gas.json index fd3dceb5b..951069005 100644 --- a/tracers/testdata/out_of_gas.json +++ b/tracers/testdata/out_of_gas.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 619513, + "blockID": "0x000973f9289baf96694740c4ea5ab6d472b9f4eaa80ca5002d17aa7647bec3ae", + "blockTime": 1536211610, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0x008aeeda4d805471df9b2a5b0f38a0c3bcba786b", "clauseIndex": 0, - "txID": "0xa50ad2b5031879d275717cbaa4d247864ac3b9aaf7629eb7591396e57694709d" + "txID": "0xa50ad2b5031879d275717cbaa4d247864ac3b9aaf7629eb7591396e57694709d", + "gas": "0x9858" }, "clause": { "to": "0x05297dc631818f77e2a5dbaf5e0143a16d492f82", @@ -13,11 +16,11 @@ "state": { "0x008aeeda4d805471df9b2a5b0f38a0c3bcba786b": { "balance": "0x8ac7230489e80000", - "energy":"0x0" + "energy": "0x49fc8830a8bcfb102" }, "0x05297dc631818f77e2a5dbaf5e0143a16d492f82": { "balance": "0x0", - "energy":"0x0", + "energy": "0x0", "code": "0x6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632c4e722e81146100a25780633ba0b9a9146100c95780634bb278f3146100de578063521eb273146100f35780638da5cb5b146101245780639106d7ba14610139578063d0febe4c14610098578063f2fde38b1461014e578063fc0c546a1461016f575b6100a0610184565b005b3480156100ae57600080fd5b506100b76103cc565b60408051918252519081900360200190f35b3480156100d557600080fd5b506100b76103d2565b3480156100ea57600080fd5b506100a06103d8565b3480156100ff57600080fd5b506101086104bb565b60408051600160a060020a039092168252519081900360200190f35b34801561013057600080fd5b506101086104ca565b34801561014557600080fd5b506100b76104d9565b34801561015a57600080fd5b506100a0600160a060020a03600435166104df565b34801561017b57600080fd5b50610108610573565b600080808033803b80156101f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736f7272792068756d616e73206f6e6c79000000000000000000000000000000604482015290519081900360640190fd5b662386f26fc1000034101561020d57600080fd5b6102156103d2565b955034935068056bc75e2d6310000034111561024e5768056bc75e2d631000009350610247848763ffffffff61058216565b9450610261565b61025e348763ffffffff61058216565b94505b600085111561036457600254604080517f79c65068000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051600160a060020a03909216916379c650689160448082019260009290919082900301818387803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b5050600354604051600160a060020a03909116925086156108fc02915086906000818181858888f19350505050158015610328573d6000803e3d6000fd5b506040805186815260208101869052815133927f4d1636c3e75537f2cbca3bdf3cf2c7825eb501463bc634e6923119dee5d1cc43928290030190a25b600154610377908563ffffffff6105b116565b60015561038a348563ffffffff6105be16565b925060008311156103c457604051339084156108fc029085906000818181858888f193505050501580156103c2573d6000803e3d6000fd5b505b505050505050565b60045481565b60045490565b600054600160a060020a031633146103ef57600080fd5b60055460ff16156103ff57600080fd5b600260009054906101000a9004600160a060020a0316600160a060020a0316633fb27b856040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561046b57600080fd5b505af115801561047f573d6000803e3d6000fd5b50506005805460ff1916600117905550506040517f6c750432a9907ef296a47d6b38305b8ad777291aefc349e462a0a3285799425490600090a1565b600354600160a060020a031681565b600054600160a060020a031681565b60015481565b600054600160a060020a031633146104f657600080fd5b600160a060020a038116151561050b57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a031681565b6000821515610593575060006105ab565b508181028183828115156105a357fe5b04146105ab57fe5b92915050565b818101828110156105ab57fe5b6000828211156105ca57fe5b509003905600a165627a7a723058208fb007b2ef25f92b4385dcdf8e2b330975aae1b3b44228393963f3e9d4259e0c0029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000006ed27401a3ba04958a6085c3b7cb77c3871e1dc3", @@ -27,34 +30,38 @@ }, "0x6ed27401a3ba04958a6085c3b7cb77c3871e1dc3": { "balance": "0x0", - "energy":"0x0", + "energy": "0x0", "code": "0x6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b3146101695780630e7801c3146101a157806318160ddd146101b657806323b872dd146101dd5780632ff2e9dc14610207578063313ce5671461021c5780633fb27b851461024757806370a082311461025e57806379c650681461027f5780638da5cb5b146102a357806395d89b41146102d4578063a9059cbb146102e9578063dd62ed3e1461030d578063f2fde38b14610334575b600080fd5b3480156100eb57600080fd5b506100f4610355565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061018d600160a060020a036004351660243561038c565b604080519115158252519081900360200190f35b3480156101ad57600080fd5b5061018d6103f2565b3480156101c257600080fd5b506101cb610402565b60408051918252519081900360200190f35b3480156101e957600080fd5b5061018d600160a060020a0360043581169060243516604435610408565b34801561021357600080fd5b506101cb610660565b34801561022857600080fd5b5061023161066e565b6040805160ff9092168252519081900360200190f35b34801561025357600080fd5b5061025c610673565b005b34801561026a57600080fd5b506101cb600160a060020a03600435166106a9565b34801561028b57600080fd5b5061025c600160a060020a03600435166024356106c4565b3480156102af57600080fd5b506102b861078a565b60408051600160a060020a039092168252519081900360200190f35b3480156102e057600080fd5b506100f4610799565b3480156102f557600080fd5b5061018d600160a060020a03600435166024356107d0565b34801561031957600080fd5b506101cb600160a060020a0360043581169060243516610947565b34801561034057600080fd5b5061025c600160a060020a0360043516610972565b60408051808201909152601381527f54657374205472616e7366657220546f6b656e00000000000000000000000000602082015281565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600054600160a060020a03161590565b60035490565b600160a060020a038316600090815260016020526040812054821115610478576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b600160a060020a03841660009081526002602090815260408083203384529091529020548211156104f3576040805160e560020a62461bcd02815260206004820152601260248201527f6578636565642074686520616c6c6f7765640000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515610553576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c696420746172676574206164647265737300000000000000000000604482015290519081900360640190fd5b600160a060020a03841660009081526001602052604090205461057c908363ffffffff610a0616565b600160a060020a0380861660009081526001602052604080822093909355908516815220546105b1908363ffffffff610a1816565b600160a060020a0380851660009081526001602090815260408083209490945591871681526002825282812033825290915220546105f5908363ffffffff610a0616565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b69d3c21bcecceda100000081565b601281565b600054600160a060020a0316331461068a57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a031660009081526001602052604090205490565b600054600160a060020a031633146106db57600080fd5b6106e36103f2565b156106ed57600080fd5b600160a060020a038216600090815260016020526040902054610716908263ffffffff610a1816565b600160a060020a038316600090815260016020526040902055600354610742908263ffffffff610a1816565b600355604080518281529051600160a060020a038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600054600160a060020a031681565b60408051808201909152600381527f5446540000000000000000000000000000000000000000000000000000000000602082015281565b33600090815260016020526040812054821115610837576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515610897576040805160e560020a62461bcd02815260206004820152601660248201527f696e76616c696420746172676574206164647265737300000000000000000000604482015290519081900360640190fd5b336000908152600160205260409020546108b7908363ffffffff610a0616565b3360009081526001602052604080822092909255600160a060020a038516815220546108e9908363ffffffff610a1816565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600054600160a060020a0316331461098957600080fd5b600160a060020a038116151561099e57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082821115610a1257fe5b50900390565b81810182811015610a2557fe5b929150505600a165627a7a72305820266893e5999bc50142c712801c35c829f016f8813839c0c643c09c6a87246c9e0029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000005297dc631818f77e2a5dbaf5e0143a16d492f82", "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000000000000000000000000da1c69712a1db7c00000", "0x99637815de1294f0a9be32b5b12cd4b483fe8bf0a06a07878f7433d526c4ca4c": "0x0000000000000000000000000000000000000000000000000000000000000000" } + }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b33ff7e3fb8776a00000", + "energy": "0x3407ac0d311995de953b7" } }, "calls": { - "type": "CALL", "from": "0x008aeeda4d805471df9b2a5b0f38a0c3bcba786b", - "to": "0x05297dc631818f77e2a5dbaf5e0143a16d492f82", - "value": "0x2386f26fc10000", "gas": "0x9858", "gasUsed": "0x9858", + "to": "0x05297dc631818f77e2a5dbaf5e0143a16d492f82", "input": "0x", "error": "out of gas", "calls": [ { - "type": "CALL", "from": "0x05297dc631818f77e2a5dbaf5e0143a16d492f82", - "to": "0x6ed27401a3ba04958a6085c3b7cb77c3871e1dc3", - "value": "0x0", "gas": "0x8a10", "gasUsed": "0x7080", - "input": "0x79c65068000000000000000000000000008aeeda4d805471df9b2a5b0f38a0c3bcba786b0000000000000000000000000000000000000000000000000de0b6b3a7640000" + "to": "0x6ed27401a3ba04958a6085c3b7cb77c3871e1dc3", + "input": "0x79c65068000000000000000000000000008aeeda4d805471df9b2a5b0f38a0c3bcba786b0000000000000000000000000000000000000000000000000de0b6b3a7640000", + "value": "0x0", + "type": "CALL" } - ] + ], + "value": "0x2386f26fc10000", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/testdata/prestate_diff/calls.json b/tracers/testdata/prestate_diff/calls.json new file mode 100644 index 000000000..3463ab5ef --- /dev/null +++ b/tracers/testdata/prestate_diff/calls.json @@ -0,0 +1,130 @@ +{ + "context": { + "blockID": "0x0021275c5ae069f86121d49563be9a1e5c7e85e9a629ecaa3403eafbf70df1d3", + "blockTime": 1551750600, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", + "txOrigin": "0x731f7ffa916a24049457f959b8c160191666c58e", + "clauseIndex": 0, + "txID": "0x2c6f0b2f10d6af933eda27bafaa635c2553eda07a489c7410d289f7047f0ee88", + "gas": "0x4b1d88" + }, + "clause": { + "to": "0x89d7526f9a16e1f808fa706232d130459ec59af2", + "value": "0x0", + "data": "0x706e350643eb5fb21cedc7a9c3aacf8fb5ed427b19a92b842b6086e86a253b52c13f7a8e00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018a270dbf282455df83cf65859a5715b85c4784e380312b0f05926e0d6809ce020000000000000000000000002626d6855f3fbb2edf7a852eabccf1ab128310c50000000000000000000000000000000000000000000000000000000000000012646174617365742d627974657333322d76320000000000000000000000000000" + }, + "state": { + "0x018f4199ff26c0cb06bf0ccfc00995c05c9e5c04": { + "balance": "0x0", + "energy": "0x0", + "code": "0x6080604052600436106101a05763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663031e3f9981146101a5578063075496a7146101cb57806309cea2551461020257806322928d6b14610295578063273d7ed1146102bc57806329ba7bb2146102ec5780632d88af4a146103015780633187ecb1146103225780633659f8ed146103995780633871a9fb146103c05780633f4ba83a146103e757806354fd4d50146103fc57806359d453e0146104275780635c975abb1461044e57806364c6907014610463578063702053b014610487578063747c53bd146104a25780637bc3a733146104c05780638456cb59146104d55780638ca3b448146104ea5780638da5cb5b1461051157806391f4ee97146105265780639d7cf1561461054a5780639fd0506d1461056b578063a22a7b5d14610580578063aecb29bf146105a7578063cd10c04b146105c8578063e0f4ae87146105dd578063e604e4c914610640578063e6ec812914610661578063eb96aa06146106cc578063eee4a04c14610707578063f2fde38b14610728575b600080fd5b3480156101b157600080fd5b506101c9600160a060020a0360043516602435610749565b005b3480156101d757600080fd5b506101e660ff6004351661086b565b60408051600160a060020a039092168252519081900360200190f35b34801561020e57600080fd5b5061022060ff60043516602435610889565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025a578181015183820152602001610242565b50505050905090810190601f1680156102875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a157600080fd5b506101c9600160a060020a036004358116906024351661098c565b3480156102c857600080fd5b506102da60ff60043516602435610a82565b60408051918252519081900360200190f35b3480156102f857600080fd5b506101e6610b27565b34801561030d57600080fd5b506101c9600160a060020a0360043516610b36565b34801561032e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261038594823560ff16946024803595369594606494920191908190840183828082843750949750610c2a9650505050505050565b604080519115158252519081900360200190f35b3480156103a557600080fd5b506101c9600160a060020a0360043516602435604435610e68565b3480156103cc57600080fd5b506101c9600160a060020a0360043581169060243516610f6d565b3480156103f357600080fd5b506101c961104f565b34801561040857600080fd5b5061041161115b565b6040805160ff9092168252519081900360200190f35b34801561043357600080fd5b506101c960ff60043516600160a060020a036024351661117d565b34801561045a57600080fd5b50610385611293565b34801561046f57600080fd5b506101c9600160a060020a036004351660243561129c565b34801561049357600080fd5b506101c960ff600435166113a2565b3480156104ae57600080fd5b506102da60ff60043516602435611459565b3480156104cc57600080fd5b506102da6114cb565b3480156104e157600080fd5b506101c96114d1565b3480156104f657600080fd5b506101c9600160a060020a03600435811690602435166115cd565b34801561051d57600080fd5b506101e66116af565b34801561053257600080fd5b506101c9600435600160a060020a03602435166116be565b34801561055657600080fd5b506102da600160a060020a03600435166117a9565b34801561057757600080fd5b506101e66117c4565b34801561058c57600080fd5b506101c960ff60043516600160a060020a03602435166117d8565b3480156105b357600080fd5b506101c960ff6004351660243560443561191e565b3480156105d457600080fd5b506101e6611ab5565b3480156105e957600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101c994823560ff16946024803595369594606494920191908190840183828082843750949750611ac49650505050505050565b34801561064c57600080fd5b506101c960ff60043516602435604435611d72565b34801561066d57600080fd5b5061067c60ff60043516611f0a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106b85781810151838201526020016106a0565b505050509050019250505060405180910390f35b3480156106d857600080fd5b506101c9600160a060020a0360043581169060243590604435151590606435906084351660a43560c435611f7a565b34801561071357600080fd5b506101c9600160a060020a036004351661219a565b34801561073457600080fd5b506101c9600160a060020a0360043516612361565b600160a060020a0382161515610797576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b8015156107ee576040805160e560020a62461bcd02815260206004820152601060248201527f696e76616c6964206f70657261746f7200000000000000000000000000000000604482015290519081900360640190fd5b604080517f66259e7f000000000000000000000000000000000000000000000000000000008152600481018390529051600160a060020a038416916366259e7f91602480830192600092919082900301818387803b15801561084f57600080fd5b505af1158015610863573d6000803e3d6000fd5b505050505050565b60ff16600090815260066020526040902054600160a060020a031690565b60ff82166000908152600660205260408082205481517fc031a180000000000000000000000000000000000000000000000000000000008152600481018590529151606093600160a060020a039092169263c031a18092602480830193919282900301818387803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561093a57600080fd5b81019080805164010000000081111561095257600080fd5b8201602081018481111561096557600080fd5b815164010000000081118282018710171561097f57600080fd5b5090979650505050505050565b600054600160a060020a03163314806109af5750600054600160a060020a031632145b15156109f3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f22928d6b000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a916322928d6b916044808301926000929190829003018186803b158015610a6e57600080fd5b505af4158015610863573d6000803e3d6000fd5b60ff821660009081526006602090815260408083205481517f709ccbe3000000000000000000000000000000000000000000000000000000008152600481018690529151600160a060020a039091169263709ccbe3926024808201939182900301818787803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b505050506040513d6020811015610b1e57600080fd5b50519392505050565b600154600160a060020a031681565b6003546101009004600160a060020a0316321480610b6357506003546101009004600160a060020a031633145b1515610ba7576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b600160a060020a0381161515610bf5576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60038054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000805460609082908190600160a060020a0316331415610c4e5760019350610e5e565b60ff871660009081526007602090815260409182902080548351818402810184019094528084529091830182828015610cb057602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610c92575b50505050509250825160001480610cc5575085155b80610cdd575033600090815260026020526040902054155b15610ceb5760009350610e5e565b600091505b8251821015610e59578282815181101515610d0757fe5b602090810290910181015160ff8916600090815260068352604080822054338352600285528183205491517f84c9f8f6000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820181815260248301859052604483018e90526080606484019081528d5160848501528d51979950938916976384c9f8f69792968f958f959394909360a401928601918190849084905b83811015610dc4578181015183820152602001610dac565b50505050905090810190601f168015610df15780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b505050506040513d6020811015610e3d57600080fd5b50511515610e4e5760009350610e5e565b600190910190610cf0565b600193505b5050509392505050565b600054600160a060020a0316331480610e8b5750600054600160a060020a031632145b1515610ecf576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152600160a060020a0385166004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b158015610f5057600080fd5b505af4158015610f64573d6000803e3d6000fd5b50505050505050565b600054600160a060020a0316331480610f905750600054600160a060020a031632145b1515610fd4576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f3871a9fb000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91633871a9fb916044808301926000929190829003018186803b158015610a6e57600080fd5b6003546101009004600160a060020a031632148061107c57506003546101009004600160a060020a031633145b15156110c0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60035460ff16151561111c576040805160e560020a62461bcd02815260206004820152601360248201527f70726f746f636f6c2069732072756e6e696e6700000000000000000000000000604482015290519081900360640190fd5b6003805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6003547501000000000000000000000000000000000000000000900460ff1681565b600554600160a060020a031633146111cd576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b600160a060020a038116151561121b576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60ff8216600081815260066020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861690811790915582519384529083015280517f30575d399fa8818f999e723f867adb4a8bafd4ff3096400ccd0cc6228ba9b0fa9281900390910190a15050565b60035460ff1681565b600160a060020a03821615156112ea576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b801515611341576040805160e560020a62461bcd02815260206004820152601060248201527f696e76616c6964206f70657261746f7200000000000000000000000000000000604482015290519081900360640190fd5b604080517f6f78c7cd000000000000000000000000000000000000000000000000000000008152600481018390529051600160a060020a03841691636f78c7cd91602480830192600092919082900301818387803b15801561084f57600080fd5b600554600160a060020a031633146113f2576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff8116600090815260076020526040812061140d91612578565b3360009081526002602090815260409182902054825160ff85168152925190927fd1b2a2ee8fd7b288028b2f73b4ca8a502d640c701e23f312274e9e58a5cd536292908290030190a250565b60ff821660009081526006602090815260408083205481517fa6ed563e000000000000000000000000000000000000000000000000000000008152600481018690529151600160a060020a039091169263a6ed563e926024808201939182900301818787803b158015610af457600080fd5b60045481565b6003546101009004600160a060020a03163214806114fe57506003546101009004600160a060020a031633145b1515611542576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60035460ff161561158b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b6003805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600054600160a060020a03163314806115f05750600054600160a060020a031632145b1515611634576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91638ca3b448916044808301926000929190829003018186803b158015610a6e57600080fd5b600054600160a060020a031681565b600054600160a060020a03163314806116e15750600054600160a060020a031632145b1515611725576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b81151561177c576040805160e560020a62461bcd02815260206004820152600b60248201527f696e76616c696420756964000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561179b57611796828261247e565b6117a5565b6117a582826124c4565b5050565b600160a060020a031660009081526002602052604090205490565b6003546101009004600160a060020a031681565b600554600160a060020a03163314611828576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff8216600090815260066020526040902054600160a060020a03161515611888576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60ff82166000818152600760209081526040808320805460018101825590845282842001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716908117909155338452600283529281902054815194855291840192909252815190927f20eec64f279e01261ebdb3fa38d5f0005cf627f0b9ed5f9536bc42db0b67223f92908290030190a25050565b60035460ff1615611967576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b604080516020808201849052825180830390910181529082019091526119909084908490610c2a565b15156119d4576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff83166000908152600660205260408082205481517f4e91db0800000000000000000000000000000000000000000000000000000000815260048101869052602481018590529151600160a060020a0390911692634e91db08926044808201939182900301818387803b158015611a4b57600080fd5b505af1158015611a5f573d6000803e3d6000fd5b505033600090815260026020908152604091829020548251868152925187955090935060ff8816927fec7c88986ebe0008ab11b3856b7e7963a907c417a7e0362bd682d2c08cb68d6992908290030190a4505050565b600554600160a060020a031681565b60035460ff1615611b0d576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b611b7e8383836040516020018082805190602001908083835b60208310611b455780518252601f199092019160209182019101611b26565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052610c2a565b1515611bc2576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff831660009081526006602090815260408083205481517f2e28d0840000000000000000000000000000000000000000000000000000000081526004810187815260248201938452865160448301528651600160a060020a0390931695632e28d084958995899593949093606490910192918601918190849084905b83811015611c57578181015183820152602001611c3f565b50505050905090810190601f168015611c845780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611ca457600080fd5b505af1158015611cb8573d6000803e3d6000fd5b5050336000908152600260209081526040808320548151838152875181850152875189975091955060ff8a16947faaa3b0797f62a4969c6227da8bb6ff6694a29a356bbcc87079bf4d5e686a182f94899492938493840192918601918190849084905b83811015611d33578181015183820152602001611d1b565b50505050905090810190601f168015611d605780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b60035460ff1615611dbb576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b611de583838360405160200180828152602001915050604051602081830303815290604052610c2a565b1515611e29576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff83166000908152600660205260408082205481517f4a094ea600000000000000000000000000000000000000000000000000000000815260048101869052602481018590529151600160a060020a0390911692634a094ea6926044808201939182900301818387803b158015611ea057600080fd5b505af1158015611eb4573d6000803e3d6000fd5b505033600090815260026020908152604091829020548251868152925187955090935060ff8816927f03a15c2f5b777ffb77adc765ead10adc210b55b0e9bf30d2e82fbdc518df12e692908290030190a4505050565b60ff8116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015611f6e57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611f50575b50505050509050919050565b60045415611fd2576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161790556004869055841561218757600160a060020a0383161515612065576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c696420757365722061646472657373000000000000000000000000604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152306004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b1580156120dd57600080fd5b505af41580156120f1573d6000803e3d6000fd5b5050604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038716602482015290517337896a421adad56be1abe02fc45773b5625c280a9350638ca3b44892506044808301926000929190829003018186803b15801561216e57600080fd5b505af4158015612182573d6000803e3d6000fd5b505050505b61219184846116be565b610f6483612361565b6003546000906101009004600160a060020a03163214806121ca57506003546101009004600160a060020a031633145b151561220e576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60035460ff1615612257576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b61225f6114d1565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905165456e65726779916370a082319160248083019260209291908290030181600087803b1580156122bd57600080fd5b505af11580156122d1573d6000803e3d6000fd5b505050506040513d60208110156122e757600080fd5b5051905060008111156117a557604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101839052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b15801561084f57600080fd5b600054600160a060020a03163314806123845750600054600160a060020a031632145b15156123c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b600160a060020a0381161515612416576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381166000818152600260205260408082208290555184917fe87454f4febbdec7791639e212aa0b6c7179180ca2d615b35676d33adbd9c45191a35050565b600160a060020a03811660009081526002602052604090205415612532576040805160e560020a62461bcd02815260206004820152600960248201527f7569642065786973740000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000818152600260205260408082208590555184917f7bbaafe20bea023575f7f016c919997f2ecf373e1b345dfab6596382e973509191a35050565b50805460008255906000526020600020908101906125969190612599565b50565b6125b791905b808211156125b3576000815560010161259f565b5090565b905600696e76616c6964206164647265737300000000000000000000000000000000007065726d697373696f6e2064656e69656400000000000000000000000000000070726f746f636f6c206973206e6f742072756e696e6700000000000000000000a165627a7a7230582046f7e27e9fd9704a88b677dabf62a5a01e632e9569021e3e531b915e1b7a51f20029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000089d7526f9a16e1f808fa706232d130459ec59af2", + "0x3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xb2401e68d452ad3af4aed95d6e19d1a690ed00a9a5bee1b2b0a83b6028446a4f": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xfa869e1cb90b8050a6f77dfb1e9fd9feafcd95fbc739574e1e500eae3e38846f": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x2303b0589661987be623becfc3a9a419326ece5d": { + "balance": "0x0", + "energy": "0x0", + "code": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301378b58811461009d57806322928d6b146100c657806329ba7bb2146100ed5780633659f8ed1461011e5780633871a9fb146101455780638ca3b4481461016c5780638da5cb5b146101935780638e1a55fc146101a8578063f2fde38b146101bd575b600080fd5b3480156100a957600080fd5b506100c4600160a060020a03600435811690602435166101de565b005b3480156100d257600080fd5b506100c4600160a060020a03600435811690602435166102dc565b3480156100f957600080fd5b506101026103be565b60408051600160a060020a039092168252519081900360200190f35b34801561012a57600080fd5b506100c4600160a060020a03600435166024356044356103cd565b34801561015157600080fd5b506100c4600160a060020a03600435811690602435166104d2565b34801561017857600080fd5b506100c4600160a060020a03600435811690602435166105b4565b34801561019f57600080fd5b50610102610696565b3480156101b457600080fd5b506101026106a5565b3480156101c957600080fd5b506100c4600160a060020a03600435166106d1565b600054600160a060020a03163314806102015750600054600160a060020a031632145b1515610245576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610fe2833981519152604482015290519081900360640190fd5b604080517f01378b58000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a916301378b58916044808301926000929190829003018186803b1580156102c057600080fd5b505af41580156102d4573d6000803e3d6000fd5b505050505050565b600054600160a060020a03163314806102ff5750600054600160a060020a031632145b1515610343576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610fe2833981519152604482015290519081900360640190fd5b604080517f22928d6b000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a916322928d6b916044808301926000929190829003018186803b1580156102c057600080fd5b600154600160a060020a031681565b600054600160a060020a03163314806103f05750600054600160a060020a031632145b1515610434576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610fe2833981519152604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152600160a060020a0385166004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b1580156104b557600080fd5b505af41580156104c9573d6000803e3d6000fd5b50505050505050565b600054600160a060020a03163314806104f55750600054600160a060020a031632145b1515610539576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610fe2833981519152604482015290519081900360640190fd5b604080517f3871a9fb000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91633871a9fb916044808301926000929190829003018186803b1580156102c057600080fd5b600054600160a060020a03163314806105d75750600054600160a060020a031632145b151561061b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610fe2833981519152604482015290519081900360640190fd5b604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91638ca3b448916044808301926000929190829003018186803b1580156102c057600080fd5b600054600160a060020a031681565b60006106af610800565b604051809103906000f0801580156106cb573d6000803e3d6000fd5b50905090565b600054600160a060020a03163314806106f45750600054600160a060020a031632145b1515610738576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610fe2833981519152604482015290519081900360640190fd5b600160a060020a0381161515610798576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040516107d18061081183390190560060c0604052601360808181527f416363657373506f6c696379436c61737369630000000000000000000000000060a0908152909161003f91600091610068565b50506001805432600160a060020a03199182168117909255600280549091169091179055610103565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a957805160ff19168380011785556100d6565b828001600101855582156100d6579182015b828111156100d65782518255916020019190600101906100bb565b506100e29291506100e6565b5090565b61010091905b808211156100e257600081556001016100ec565b90565b6106bf806101126000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166329ba7bb2811461009d5780632aa71e24146100ce57806366259e7f146100f45780636f78c7cd1461010c57806384c9f8f6146101245780638da5cb5b146101a4578063e14c9e2e146101b9578063e55cb3d414610243578063f2fde38b1461025b575b600080fd5b3480156100a957600080fd5b506100b261027c565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100f2600435600160a060020a036024351661028b565b005b34801561010057600080fd5b506100f2600435610309565b34801561011857600080fd5b506100f26004356103c2565b34801561013057600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261019094600160a060020a03813516946024803595604435953695608494930191819084018382808284375094975061047e9650505050505050565b604080519115158252519081900360200190f35b3480156101b057600080fd5b506100b2610497565b3480156101c557600080fd5b506101ce6104a6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102085781810151838201526020016101f0565b50505050905090810190601f1680156102355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024f57600080fd5b5061019060043561053c565b34801561026757600080fd5b506100f2600160a060020a0360043516610551565b600254600160a060020a031681565b60045460ff16156102e6576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6004805460ff191660011790556102fc826103c2565b61030581610551565b5050565b600154600160a060020a031633148061032c5750600154600160a060020a031632145b1515610382576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191690555182917f87ed60f85ca9455ddc75377b551f6e9345e1191987f08d339604ebbd4d274c3c91a250565b600154600160a060020a03163314806103e55750600154600160a060020a031632145b151561043b576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191660011790555182917f564472207cf6697287aa046e48d6a90a31d9be632c632a96785adf57c79e6fa491a250565b505060009081526003602052604090205460ff16919050565b600154600160a060020a031681565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105325780601f1061050757610100808354040283529160200191610532565b820191906000526020600020905b81548152906001019060200180831161051557829003601f168201915b5050505050905090565b60036020526000908152604090205460ff1681565b600154600160a060020a03163314806105745750600154600160a060020a031632145b15156105ca576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561062a576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820cb8cd44a087ec93943acb1f88c01f7125eb473f3afd9a7cd6275acdbbc68790000297065726d697373696f6e2064656e696564000000000000000000000000000000a165627a7a723058201f6a09dc3dfe22edf1a11ee5204801a972552581fcfe2ae30943bb6c97df5b240029" + }, + "0x6a561b5a6a8f14724de26c3bf922c9e884fa3df2": { + "balance": "0x0", + "energy": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x731f7ffa916a24049457f959b8c160191666c58e": { + "balance": "0x0", + "energy": "0x0" + }, + "0x7b2493d3ef8b32de6fe0e17e1dedb0ca10743a76": { + "balance": "0x0", + "energy": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xa89d69e6384d2757dc9a8f6c8d1419f1350090fbd3c519b5bdf0dc0822eba8f0": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x7c6d059078bb5034e4f74f02a6ab0db99f5b0bdb": { + "balance": "0x0", + "energy": "0x0", + "code": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301378b58811461009d57806322928d6b146100c657806329ba7bb2146100ed5780633659f8ed1461011e5780633871a9fb146101455780638ca3b4481461016c5780638da5cb5b146101935780638e1a55fc146101a8578063f2fde38b146101bd575b600080fd5b3480156100a957600080fd5b506100c4600160a060020a03600435811690602435166101de565b005b3480156100d257600080fd5b506100c4600160a060020a03600435811690602435166102dc565b3480156100f957600080fd5b506101026103be565b60408051600160a060020a039092168252519081900360200190f35b34801561012a57600080fd5b506100c4600160a060020a03600435166024356044356103cd565b34801561015157600080fd5b506100c4600160a060020a03600435811690602435166104d2565b34801561017857600080fd5b506100c4600160a060020a03600435811690602435166105b4565b34801561019f57600080fd5b50610102610696565b3480156101b457600080fd5b506101026106a5565b3480156101c957600080fd5b506100c4600160a060020a03600435166106d1565b600054600160a060020a03163314806102015750600054600160a060020a031632145b1515610245576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610cfa833981519152604482015290519081900360640190fd5b604080517f01378b58000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a916301378b58916044808301926000929190829003018186803b1580156102c057600080fd5b505af41580156102d4573d6000803e3d6000fd5b505050505050565b600054600160a060020a03163314806102ff5750600054600160a060020a031632145b1515610343576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610cfa833981519152604482015290519081900360640190fd5b604080517f22928d6b000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a916322928d6b916044808301926000929190829003018186803b1580156102c057600080fd5b600154600160a060020a031681565b600054600160a060020a03163314806103f05750600054600160a060020a031632145b1515610434576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610cfa833981519152604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152600160a060020a0385166004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b1580156104b557600080fd5b505af41580156104c9573d6000803e3d6000fd5b50505050505050565b600054600160a060020a03163314806104f55750600054600160a060020a031632145b1515610539576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610cfa833981519152604482015290519081900360640190fd5b604080517f3871a9fb000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91633871a9fb916044808301926000929190829003018186803b1580156102c057600080fd5b600054600160a060020a03163314806105d75750600054600160a060020a031632145b151561061b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610cfa833981519152604482015290519081900360640190fd5b604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91638ca3b448916044808301926000929190829003018186803b1580156102c057600080fd5b600054600160a060020a031681565b60006106af610800565b604051809103906000f0801580156106cb573d6000803e3d6000fd5b50905090565b600054600160a060020a03163314806106f45750600054600160a060020a031632145b1515610738576040805160e560020a62461bcd0281526020600482015260116024820152600080516020610cfa833981519152604482015290519081900360640190fd5b600160a060020a0381161515610798576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040516104e98061081183390190560060806040526000805460ff1916600217905534801561001d57600080fd5b506104bc8061002d6000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306661abd811461009d5780634d9431ea146100c45780634e91db08146100fa57806354fd4d50146101155780638eaa6ac014610140578063a6ed563e14610158578063af640d0f14610170578063c031a18014610185578063cd10c04b14610212575b600080fd5b3480156100a957600080fd5b506100b2610250565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100f873ffffffffffffffffffffffffffffffffffffffff6004351660ff60243516610256565b005b34801561010657600080fd5b506100f8600435602435610333565b34801561012157600080fd5b5061012a61040c565b6040805160ff9092168252519081900360200190f35b34801561014c57600080fd5b506100b2600435610415565b34801561016457600080fd5b506100b2600435610426565b34801561017c57600080fd5b5061012a610438565b34801561019157600080fd5b5061019d600435610446565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d75781810151838201526020016101bf565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021e57600080fd5b50610227610474565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff16156102db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616e2062652063616c6c6564206f6e6c79206f6e6365000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff90931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091556000805460ff9092166101000261ff0019909216919091179055565b60025460009073ffffffffffffffffffffffffffffffffffffffff1633146103bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b506000828152600360205260409020548115156103e95780156103e457600180546000190190555b6103f9565b8015156103f95760018054810190555b5060009182526003602052604090912055565b60005460ff1681565b600061042082610426565b92915050565b60009081526003602052604090205490565b600054610100900460ff1681565b6000908152600360209081526040918290205482518083019190915282518082039092018252820190915290565b60025473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820f02148b8813fd7cf89e5d30a415e72b869409ec83d5adaa7155dd359d0189aa400297065726d697373696f6e2064656e696564000000000000000000000000000000a165627a7a7230582089581a9051afb38a6fcb634e4f19452d65b75bd163d854d39d87e451c4699faf0029" + }, + "0x89d7526f9a16e1f808fa706232d130459ec59af2": { + "balance": "0x0", + "energy": "0xd0d9fd1e4c0380938000", + "code": "0x60806040526004361061010e5763ffffffff60e060020a6000350416630888c2d1811461011357806319e6bc881461014757806329ba7bb21461016e5780632d88af4a14610183578063327942a2146101a657806335543f3e146101c15780633f4ba83a146101f8578063485fef7b1461020d57806354fd4d501461022557806358f28c5b146102505780635c975abb1461026e578063706e3506146102975780638456cb591461031457806389483a9a146103295780638da5cb5b146103535780639a210542146103685780639fd0506d146103e8578063cd10c04b146103fd578063d34122b514610412578063e2cee54414610433578063eee4a04c14610448578063f2fde38b14610469575b600080fd5b34801561011f57600080fd5b5061012b60043561048a565b60408051600160a060020a039092168252519081900360200190f35b34801561015357600080fd5b5061015c6104a5565b60408051918252519081900360200190f35b34801561017a57600080fd5b5061012b6104ab565b34801561018f57600080fd5b506101a4600160a060020a03600435166104ba565b005b3480156101b257600080fd5b506101a46004356024356105b0565b3480156101cd57600080fd5b506101a4600160a060020a03600435811690602435906044351515906064351660843560a43561084a565b34801561020457600080fd5b506101a4610a68565b34801561021957600080fd5b506101a4600435610b85565b34801561023157600080fd5b5061023a610db5565b6040805160ff9092168252519081900360200190f35b34801561025c57600080fd5b506101a460043560ff60243516610dc5565b34801561027a57600080fd5b50610283610f70565b604080519115158252519081900360200190f35b3480156102a357600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261012b9583359536956044949193909101919081908401838280828437509497505050833560ff169450505050602081013515159060408101359060600135600160a060020a0316610f80565b34801561032057600080fd5b506101a4611446565b34801561033557600080fd5b506101a460043560ff60243516600160a060020a0360443516611556565b34801561035f57600080fd5b5061012b611724565b34801561037457600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261012b9583359536956044949193909101919081908401838280828437509497505050508235151593505050602081013590600160a060020a036040820135169060608101359060800135611733565b3480156103f457600080fd5b5061012b611a70565b34801561040957600080fd5b5061012b611a7f565b34801561041e57600080fd5b5061015c600160a060020a0360043516611a8e565b34801561043f57600080fd5b5061015c611aa9565b34801561045457600080fd5b506101a4600160a060020a0360043516611aaf565b34801561047557600080fd5b506101a4600160a060020a0360043516611c73565b600090815260066020526040902054600160a060020a031690565b60055481565b600154600160a060020a031681565b600254600160a060020a03163214806104dd5750600254600160a060020a031633145b1515610521576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b600160a060020a0381161515610581576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03163314806105d65750600054600160a060020a031632145b151561061a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161561066a576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600084815260066020526040902054600160a060020a031691508115156106db576040805160e560020a62461bcd02815260206004820152601160248201527f636f6d70616e79206e6f74206578697374000000000000000000000000000000604482015290519081900360640190fd5b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905165456e65726779916370a082319160248083019260209291908290030181600087803b15801561073957600080fd5b505af115801561074d573d6000803e3d6000fd5b505050506040513d602081101561076357600080fd5b50519050828110156107bf576040805160e560020a62461bcd02815260206004820152601660248201527f656e6572677920697320696e73756666696369656e7400000000000000000000604482015290519081900360640190fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101859052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b15801561082c57600080fd5b505af1158015610840573d6000803e3d6000fd5b5050505050505050565b600454156108a2576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03881617905560048590558315610a5757600160a060020a0383161515610935576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c696420757365722061646472657373000000000000000000000000604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152306004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b1580156109ad57600080fd5b505af41580156109c1573d6000803e3d6000fd5b5050604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038716602482015290517337896a421adad56be1abe02fc45773b5625c280a9350638ca3b44892506044808301926000929190829003018186803b158015610a3e57600080fd5b505af4158015610a52573d6000803e3d6000fd5b505050505b610a6083611c73565b505050505050565b600254600160a060020a0316321480610a8b5750600254600160a060020a031633145b1515610acf576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161515610b32576040805160e560020a62461bcd02815260206004820152601360248201527f70726f746f636f6c2069732072756e6e696e6700000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60008054600160a060020a0316331480610ba95750600054600160a060020a031632145b1515610bed576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff1615610c3d576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600082815260066020526040902054600160a060020a03161515610cab576040805160e560020a62461bcd02815260206004820152601160248201527f636f6d70616e79206e6f74206578697374000000000000000000000000000000604482015290519081900360640190fd5b506000818152600660205260408082205481517feee4a04c0000000000000000000000000000000000000000000000000000000081523060048201529151600160a060020a0390911692839263eee4a04c926024808301939282900301818387803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b5050506000838152600660209081526040808320805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a0385168084526007835281842093909355600580546000190190558051928352518593507fd0c0f2fcfc42f8992ee028132e0d4d85beeef861b7e8dc855ec7e9854d3ad3df9281900390910190a25050565b60025460a060020a900460ff1681565b600054600160a060020a0316331480610de85750600054600160a060020a031632145b1515610e2c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff1615610e7c576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600082815260066020526040902054600160a060020a03161515610eea576040805160e560020a62461bcd02815260206004820152601160248201527f636f6d70616e79206e6f74206578697374000000000000000000000000000000604482015290519081900360640190fd5b6000828152600660205260408082205481517f702053b000000000000000000000000000000000000000000000000000000000815260ff851660048201529151600160a060020a039091169263702053b0926024808201939182900301818387803b158015610f5857600080fd5b505af1158015610a60573d6000803e3d6000fd5b5050565b60015460a060020a900460ff1681565b60008054819081908190600160a060020a0316331480610faa5750600054600160a060020a031632145b1515610fee576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161561103e576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b60008a815260066020526040902054600160a060020a031615156110ac576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b6110b4611da2565b600160a060020a0316638ef6e7fe8a6040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111125781810151838201526020016110fa565b50505050905090810190601f16801561113f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561115e57600080fd5b505af1158015611172573d6000803e3d6000fd5b505050506040513d602081101561118857600080fd5b505160008b8152600660205260408082205481517f4d9431ea000000000000000000000000000000000000000000000000000000008152600160a060020a03918216600482015260ff8d1660248201529151939650861692634d9431ea9260448084019391929182900301818387803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50505060008b8152600660205260408082205481517f59d453e000000000000000000000000000000000000000000000000000000000815260ff8d166004820152600160a060020a03888116602483015292519290911695508593506359d453e092604480830193919282900301818387803b15801561129757600080fd5b505af11580156112ab573d6000803e3d6000fd5b5050505086156113f3576112bd611da2565b600160a060020a0316638ef6e7fe6040518163ffffffff1660e060020a02815260040180806020018281038252600e8152602001807f636c61737369632d706f6c696379000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561133657600080fd5b505af115801561134a573d6000803e3d6000fd5b505050506040513d602081101561136057600080fd5b5051604080517f2aa71e2400000000000000000000000000000000000000000000000000000000815260048101899052600160a060020a038881166024830152915192935090831691632aa71e249160448082019260009290919082900301818387803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b505050506113f38a8983611556565b6040805160ff8a168152600160a060020a038516602082015281518c927f1443dedef98a1fa143f735326218daf48733adc921845d80a802dc5a26bcd5f7928290030190a2509098975050505050505050565b600254600160a060020a03163214806114695750600254600160a060020a031633145b15156114ad576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff16156114fd576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600054600160a060020a03163314806115795750600054600160a060020a031632145b15156115bd576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff161561160d576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600083815260066020526040902054600160a060020a03161580159061163b5750600160a060020a03811615155b1515611691576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c696420696e70757400000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600660205260408082205481517fa22a7b5d00000000000000000000000000000000000000000000000000000000815260ff86166004820152600160a060020a0385811660248301529251929091169263a22a7b5d9260448084019382900301818387803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b50505050505050565b600054600160a060020a031681565b600080548190600160a060020a03163314806117595750600054600160a060020a031632145b151561179d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff16156117ed576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b600089815260066020526040902054600160a060020a03161561185a576040805160e560020a62461bcd02815260206004820152601560248201527f61206475706c696361746520636f6d70616e7949640000000000000000000000604482015290519081900360640190fd5b611862611da2565b600160a060020a0316638ef6e7fe896040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118c05781810151838201526020016118a8565b50505050905090810190601f1680156118ed5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561190c57600080fd5b505af1158015611920573d6000803e3d6000fd5b505050506040513d602081101561193657600080fd5b5051604080517feb96aa06000000000000000000000000000000000000000000000000000000008152306004820152602481018c9052891515604482015260648101899052600160a060020a03888116608483015260a4820188905260c4820187905291519293509083169163eb96aa069160e48082019260009290919082900301818387803b1580156119c957600080fd5b505af11580156119dd573d6000803e3d6000fd5b50505060008a8152600660209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03871690811790915580845260078352928190208d90556005805460010190558051928352518c93507f0d535cb7feb34d86bfc1b7c7310b856c729022d6f23a4bf858bc3cbce5e50d6c9281900390910190a298975050505050505050565b600254600160a060020a031681565b600354600160a060020a031681565b600160a060020a031660009081526007602052604090205490565b60045481565b600254600090600160a060020a0316321480611ad55750600254600160a060020a031633145b1515611b19576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b60015460a060020a900460ff1615611b69576040805160e560020a62461bcd0281526020600482015260166024820152600080516020611e8f833981519152604482015290519081900360640190fd5b611b71611446565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905165456e65726779916370a082319160248083019260209291908290030181600087803b158015611bcf57600080fd5b505af1158015611be3573d6000803e3d6000fd5b505050506040513d6020811015611bf957600080fd5b505190506000811115610f6c57604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101839052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b158015610f5857600080fd5b600054600160a060020a0316331480611c965750600054600160a060020a031632145b1515611cda576040805160e560020a62461bcd0281526020600482015260116024820152600080516020611e6f833981519152604482015290519081900360640190fd5b600160a060020a0381161515611d3a576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611dac611e56565b600160a060020a031663693ec85e6040518163ffffffff1660e060020a02815260040180806020018281038252601a8152602001807f636f6d2e7665636861696e2e7769646765742d666163746f7279000000000000815250602001915050602060405180830381600087803b158015611e2557600080fd5b505af1158015611e39573d6000803e3d6000fd5b505050506040513d6020811015611e4f57600080fd5b5051905090565b73ce092f78d97d81a352c4c1d811d44245f95a27dd9056007065726d697373696f6e2064656e69656400000000000000000000000000000070726f746f636f6c206973206e6f742072756e696e6700000000000000000000a165627a7a7230582017368c30ea26178b98b89fe0bc083135718320cd73ce4e94d5bbfd6053cff1800029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000731f7ffa916a24049457f959b8c160191666c58e", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000007dba876d743a667763234ac8761a8000d2f3ad38", + "0xfeeb12b05be7689b0a07d30a54243a8c343346e183a31b92136845600f4e26e7": "0x000000000000000000000000018f4199ff26c0cb06bf0ccfc00995c05c9e5c04" + } + }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b3b431de1c215c200000", + "energy": "0x5468a8c1e5ff69bbf60ed0" + }, + "0xce092f78d97d81a352c4c1d811d44245f95a27dd": { + "balance": "0x0", + "energy": "0x0", + "code": "0x60806040526004361061006c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166329ba7bb281146100c9578063693ec85e146100fa5780638da5cb5b14610153578063a815ff1514610168578063f2fde38b146101ce575b34801561007857600080fd5b506040805160e560020a62461bcd02815260206004820152600c60248201527f696c6c6567616c2063616c6c0000000000000000000000000000000000000000604482015290519081900360640190fd5b3480156100d557600080fd5b506100de6101ef565b60408051600160a060020a039092168252519081900360200190f35b34801561010657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100de9436949293602493928401919081908401838280828437509497506101fe9650505050505050565b34801561015f57600080fd5b506100de61026f565b34801561017457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101cc94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061027e92505050565b005b3480156101da57600080fd5b506101cc600160a060020a0360043516610423565b600154600160a060020a031681565b60006002826040518082805190602001908083835b602083106102325780518252601f199092019160209182019101610213565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316949350505050565b600054600160a060020a031681565b600054600160a060020a03163314806102a15750600054600160a060020a031632145b15156102f7576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b806002836040518082805190602001908083835b6020831061032a5780518252601f19909201916020918201910161030b565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0397881617905594861684820152848452865194840194909452505083517ffb61c28e210c57f5ca20724afa35c1dbda662f286bd8d214606c6cfbdc41f439928592859290918291606083019186019080838360005b838110156103e45781810151838201526020016103cc565b50505050905090810190601f1680156104115780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b600054600160a060020a03163314806104465750600054600160a060020a031632145b151561049c576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03811615156104fc576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058202750e8e751b701acc8bff8e93a7f856d3dd4ca2dee3d679e7b12f280168841eb0029", + "storage": { + "0x4ff56e803f9f1e356bae4c49c68a6a6a441588bc045317821503065a0141269f": "0x000000000000000000000000e2bd2067f91c86e97c178f707f7f9899336a789e" + } + }, + "0xe2bd2067f91c86e97c178f707f7f9899336a789e": { + "balance": "0x0", + "energy": "0x0", + "code": "0x6080604052600436106100775763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166329ba7bb2811461007c57806365490bb3146100ad5780638da5cb5b146101065780638ef6e7fe1461011b578063ecf15ab414610174578063f2fde38b146101ec575b600080fd5b34801561008857600080fd5b5061009161020f565b60408051600160a060020a039092168252519081900360200190f35b3480156100b957600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261009194369492936024939284019190819084018382808284375094975061021e9650505050505050565b34801561011257600080fd5b5061009161028f565b34801561012757600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261009194369492936024939284019190819084018382808284375094975061029e9650505050505050565b34801561018057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101d894369492936024939284019190819084018382808284375094975050509235600160a060020a031693506104a292505050565b604080519115158252519081900360200190f35b3480156101f857600080fd5b5061020d600160a060020a036004351661064d565b005b600154600160a060020a031681565b60006002826040518082805190602001908083835b602083106102525780518252601f199092019160209182019101610233565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316949350505050565b600054600160a060020a031681565b60008060006002846040518082805190602001908083835b602083106102d55780518252601f1990920191602091820191016102b6565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a031693505050811515610365576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a0316638e1a55fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156103bc57600080fd5b505af11580156103d0573d6000803e3d6000fd5b505050506040513d60208110156103e657600080fd5b505160408051600160a060020a03831660208281019190915282825287519282019290925286519293507f1119821a9d90d962bfe0a2c5927b59e67208d9dca94f9c00580c398dd8f6f388928792859291829160608301919086019080838360005b83811015610460578181015183820152602001610448565b50505050905090810190601f16801561048d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a19392505050565b60008054600160a060020a03163314806104c65750600054600160a060020a031632145b151561051c576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b816002846040518082805190602001908083835b6020831061054f5780518252601f199092019160209182019101610530565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0397881617905594871684820152848452875194840194909452505084517f3e776bd5365b47943b2d3d1de6965ae8d42611531f858817d7fbfd1aaa8a48ec928692869290918291606083019186019080838360005b838110156106095781810151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150600192915050565b600054600160a060020a03163314806106705750600054600160a060020a031632145b15156106c6576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515610726576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820f30cdc9a4f04550469b791350416b101107f78f8cbf8ff8f0606659eb34408860029", + "storage": { + "0x1288946fa38588e2af860936057d51148d5aea61088de7ac7b494b0639eb5da7": "0x0000000000000000000000002303b0589661987be623becfc3a9a419326ece5d", + "0xbd1821235590f9df8912ff00ef5f018733574b2976c687f46d8a679c006ea7da": "0x0000000000000000000000007c6d059078bb5034e4f74f02a6ab0db99f5b0bdb" + } + } + }, + "pre": { + "0x018f4199ff26c0cb06bf0ccfc00995c05c9e5c04": { + "balance": "0x0", + "energy": "0x0", + "code": "0x6080604052600436106101a05763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663031e3f9981146101a5578063075496a7146101cb57806309cea2551461020257806322928d6b14610295578063273d7ed1146102bc57806329ba7bb2146102ec5780632d88af4a146103015780633187ecb1146103225780633659f8ed146103995780633871a9fb146103c05780633f4ba83a146103e757806354fd4d50146103fc57806359d453e0146104275780635c975abb1461044e57806364c6907014610463578063702053b014610487578063747c53bd146104a25780637bc3a733146104c05780638456cb59146104d55780638ca3b448146104ea5780638da5cb5b1461051157806391f4ee97146105265780639d7cf1561461054a5780639fd0506d1461056b578063a22a7b5d14610580578063aecb29bf146105a7578063cd10c04b146105c8578063e0f4ae87146105dd578063e604e4c914610640578063e6ec812914610661578063eb96aa06146106cc578063eee4a04c14610707578063f2fde38b14610728575b600080fd5b3480156101b157600080fd5b506101c9600160a060020a0360043516602435610749565b005b3480156101d757600080fd5b506101e660ff6004351661086b565b60408051600160a060020a039092168252519081900360200190f35b34801561020e57600080fd5b5061022060ff60043516602435610889565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025a578181015183820152602001610242565b50505050905090810190601f1680156102875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a157600080fd5b506101c9600160a060020a036004358116906024351661098c565b3480156102c857600080fd5b506102da60ff60043516602435610a82565b60408051918252519081900360200190f35b3480156102f857600080fd5b506101e6610b27565b34801561030d57600080fd5b506101c9600160a060020a0360043516610b36565b34801561032e57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261038594823560ff16946024803595369594606494920191908190840183828082843750949750610c2a9650505050505050565b604080519115158252519081900360200190f35b3480156103a557600080fd5b506101c9600160a060020a0360043516602435604435610e68565b3480156103cc57600080fd5b506101c9600160a060020a0360043581169060243516610f6d565b3480156103f357600080fd5b506101c961104f565b34801561040857600080fd5b5061041161115b565b6040805160ff9092168252519081900360200190f35b34801561043357600080fd5b506101c960ff60043516600160a060020a036024351661117d565b34801561045a57600080fd5b50610385611293565b34801561046f57600080fd5b506101c9600160a060020a036004351660243561129c565b34801561049357600080fd5b506101c960ff600435166113a2565b3480156104ae57600080fd5b506102da60ff60043516602435611459565b3480156104cc57600080fd5b506102da6114cb565b3480156104e157600080fd5b506101c96114d1565b3480156104f657600080fd5b506101c9600160a060020a03600435811690602435166115cd565b34801561051d57600080fd5b506101e66116af565b34801561053257600080fd5b506101c9600435600160a060020a03602435166116be565b34801561055657600080fd5b506102da600160a060020a03600435166117a9565b34801561057757600080fd5b506101e66117c4565b34801561058c57600080fd5b506101c960ff60043516600160a060020a03602435166117d8565b3480156105b357600080fd5b506101c960ff6004351660243560443561191e565b3480156105d457600080fd5b506101e6611ab5565b3480156105e957600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101c994823560ff16946024803595369594606494920191908190840183828082843750949750611ac49650505050505050565b34801561064c57600080fd5b506101c960ff60043516602435604435611d72565b34801561066d57600080fd5b5061067c60ff60043516611f0a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106b85781810151838201526020016106a0565b505050509050019250505060405180910390f35b3480156106d857600080fd5b506101c9600160a060020a0360043581169060243590604435151590606435906084351660a43560c435611f7a565b34801561071357600080fd5b506101c9600160a060020a036004351661219a565b34801561073457600080fd5b506101c9600160a060020a0360043516612361565b600160a060020a0382161515610797576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b8015156107ee576040805160e560020a62461bcd02815260206004820152601060248201527f696e76616c6964206f70657261746f7200000000000000000000000000000000604482015290519081900360640190fd5b604080517f66259e7f000000000000000000000000000000000000000000000000000000008152600481018390529051600160a060020a038416916366259e7f91602480830192600092919082900301818387803b15801561084f57600080fd5b505af1158015610863573d6000803e3d6000fd5b505050505050565b60ff16600090815260066020526040902054600160a060020a031690565b60ff82166000908152600660205260408082205481517fc031a180000000000000000000000000000000000000000000000000000000008152600481018590529151606093600160a060020a039092169263c031a18092602480830193919282900301818387803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561093a57600080fd5b81019080805164010000000081111561095257600080fd5b8201602081018481111561096557600080fd5b815164010000000081118282018710171561097f57600080fd5b5090979650505050505050565b600054600160a060020a03163314806109af5750600054600160a060020a031632145b15156109f3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f22928d6b000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a916322928d6b916044808301926000929190829003018186803b158015610a6e57600080fd5b505af4158015610863573d6000803e3d6000fd5b60ff821660009081526006602090815260408083205481517f709ccbe3000000000000000000000000000000000000000000000000000000008152600481018690529151600160a060020a039091169263709ccbe3926024808201939182900301818787803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b505050506040513d6020811015610b1e57600080fd5b50519392505050565b600154600160a060020a031681565b6003546101009004600160a060020a0316321480610b6357506003546101009004600160a060020a031633145b1515610ba7576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b600160a060020a0381161515610bf5576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60038054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000805460609082908190600160a060020a0316331415610c4e5760019350610e5e565b60ff871660009081526007602090815260409182902080548351818402810184019094528084529091830182828015610cb057602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610c92575b50505050509250825160001480610cc5575085155b80610cdd575033600090815260026020526040902054155b15610ceb5760009350610e5e565b600091505b8251821015610e59578282815181101515610d0757fe5b602090810290910181015160ff8916600090815260068352604080822054338352600285528183205491517f84c9f8f6000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820181815260248301859052604483018e90526080606484019081528d5160848501528d51979950938916976384c9f8f69792968f958f959394909360a401928601918190849084905b83811015610dc4578181015183820152602001610dac565b50505050905090810190601f168015610df15780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b505050506040513d6020811015610e3d57600080fd5b50511515610e4e5760009350610e5e565b600190910190610cf0565b600193505b5050509392505050565b600054600160a060020a0316331480610e8b5750600054600160a060020a031632145b1515610ecf576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152600160a060020a0385166004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b158015610f5057600080fd5b505af4158015610f64573d6000803e3d6000fd5b50505050505050565b600054600160a060020a0316331480610f905750600054600160a060020a031632145b1515610fd4576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f3871a9fb000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91633871a9fb916044808301926000929190829003018186803b158015610a6e57600080fd5b6003546101009004600160a060020a031632148061107c57506003546101009004600160a060020a031633145b15156110c0576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60035460ff16151561111c576040805160e560020a62461bcd02815260206004820152601360248201527f70726f746f636f6c2069732072756e6e696e6700000000000000000000000000604482015290519081900360640190fd5b6003805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6003547501000000000000000000000000000000000000000000900460ff1681565b600554600160a060020a031633146111cd576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b600160a060020a038116151561121b576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60ff8216600081815260066020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861690811790915582519384529083015280517f30575d399fa8818f999e723f867adb4a8bafd4ff3096400ccd0cc6228ba9b0fa9281900390910190a15050565b60035460ff1681565b600160a060020a03821615156112ea576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b801515611341576040805160e560020a62461bcd02815260206004820152601060248201527f696e76616c6964206f70657261746f7200000000000000000000000000000000604482015290519081900360640190fd5b604080517f6f78c7cd000000000000000000000000000000000000000000000000000000008152600481018390529051600160a060020a03841691636f78c7cd91602480830192600092919082900301818387803b15801561084f57600080fd5b600554600160a060020a031633146113f2576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff8116600090815260076020526040812061140d91612578565b3360009081526002602090815260409182902054825160ff85168152925190927fd1b2a2ee8fd7b288028b2f73b4ca8a502d640c701e23f312274e9e58a5cd536292908290030190a250565b60ff821660009081526006602090815260408083205481517fa6ed563e000000000000000000000000000000000000000000000000000000008152600481018690529151600160a060020a039091169263a6ed563e926024808201939182900301818787803b158015610af457600080fd5b60045481565b6003546101009004600160a060020a03163214806114fe57506003546101009004600160a060020a031633145b1515611542576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60035460ff161561158b576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b6003805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600054600160a060020a03163314806115f05750600054600160a060020a031632145b1515611634576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152600160a060020a0380851660048301528316602482015290517337896a421adad56be1abe02fc45773b5625c280a91638ca3b448916044808301926000929190829003018186803b158015610a6e57600080fd5b600054600160a060020a031681565b600054600160a060020a03163314806116e15750600054600160a060020a031632145b1515611725576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b81151561177c576040805160e560020a62461bcd02815260206004820152600b60248201527f696e76616c696420756964000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561179b57611796828261247e565b6117a5565b6117a582826124c4565b5050565b600160a060020a031660009081526002602052604090205490565b6003546101009004600160a060020a031681565b600554600160a060020a03163314611828576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff8216600090815260066020526040902054600160a060020a03161515611888576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60ff82166000818152600760209081526040808320805460018101825590845282842001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716908117909155338452600283529281902054815194855291840192909252815190927f20eec64f279e01261ebdb3fa38d5f0005cf627f0b9ed5f9536bc42db0b67223f92908290030190a25050565b60035460ff1615611967576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b604080516020808201849052825180830390910181529082019091526119909084908490610c2a565b15156119d4576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff83166000908152600660205260408082205481517f4e91db0800000000000000000000000000000000000000000000000000000000815260048101869052602481018590529151600160a060020a0390911692634e91db08926044808201939182900301818387803b158015611a4b57600080fd5b505af1158015611a5f573d6000803e3d6000fd5b505033600090815260026020908152604091829020548251868152925187955090935060ff8816927fec7c88986ebe0008ab11b3856b7e7963a907c417a7e0362bd682d2c08cb68d6992908290030190a4505050565b600554600160a060020a031681565b60035460ff1615611b0d576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b611b7e8383836040516020018082805190602001908083835b60208310611b455780518252601f199092019160209182019101611b26565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052610c2a565b1515611bc2576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff831660009081526006602090815260408083205481517f2e28d0840000000000000000000000000000000000000000000000000000000081526004810187815260248201938452865160448301528651600160a060020a0390931695632e28d084958995899593949093606490910192918601918190849084905b83811015611c57578181015183820152602001611c3f565b50505050905090810190601f168015611c845780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611ca457600080fd5b505af1158015611cb8573d6000803e3d6000fd5b5050336000908152600260209081526040808320548151838152875181850152875189975091955060ff8a16947faaa3b0797f62a4969c6227da8bb6ff6694a29a356bbcc87079bf4d5e686a182f94899492938493840192918601918190849084905b83811015611d33578181015183820152602001611d1b565b50505050905090810190601f168015611d605780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b60035460ff1615611dbb576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b611de583838360405160200180828152602001915050604051602081830303815290604052610c2a565b1515611e29576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60ff83166000908152600660205260408082205481517f4a094ea600000000000000000000000000000000000000000000000000000000815260048101869052602481018590529151600160a060020a0390911692634a094ea6926044808201939182900301818387803b158015611ea057600080fd5b505af1158015611eb4573d6000803e3d6000fd5b505033600090815260026020908152604091829020548251868152925187955090935060ff8816927f03a15c2f5b777ffb77adc765ead10adc210b55b0e9bf30d2e82fbdc518df12e692908290030190a4505050565b60ff8116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015611f6e57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611f50575b50505050509050919050565b60045415611fd2576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0389161790556004869055841561218757600160a060020a0383161515612065576040805160e560020a62461bcd02815260206004820152601460248201527f696e76616c696420757365722061646472657373000000000000000000000000604482015290519081900360640190fd5b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152306004820152602481018490526044810183905290517337896a421adad56be1abe02fc45773b5625c280a91633659f8ed916064808301926000929190829003018186803b1580156120dd57600080fd5b505af41580156120f1573d6000803e3d6000fd5b5050604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038716602482015290517337896a421adad56be1abe02fc45773b5625c280a9350638ca3b44892506044808301926000929190829003018186803b15801561216e57600080fd5b505af4158015612182573d6000803e3d6000fd5b505050505b61219184846116be565b610f6483612361565b6003546000906101009004600160a060020a03163214806121ca57506003546101009004600160a060020a031633145b151561220e576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b60035460ff1615612257576040805160e560020a62461bcd02815260206004820152601660248201526000805160206125fb833981519152604482015290519081900360640190fd5b61225f6114d1565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905165456e65726779916370a082319160248083019260209291908290030181600087803b1580156122bd57600080fd5b505af11580156122d1573d6000803e3d6000fd5b505050506040513d60208110156122e757600080fd5b5051905060008111156117a557604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101839052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b15801561084f57600080fd5b600054600160a060020a03163314806123845750600054600160a060020a031632145b15156123c8576040805160e560020a62461bcd02815260206004820152601160248201526000805160206125db833981519152604482015290519081900360640190fd5b600160a060020a0381161515612416576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206125bb833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381166000818152600260205260408082208290555184917fe87454f4febbdec7791639e212aa0b6c7179180ca2d615b35676d33adbd9c45191a35050565b600160a060020a03811660009081526002602052604090205415612532576040805160e560020a62461bcd02815260206004820152600960248201527f7569642065786973740000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000818152600260205260408082208590555184917f7bbaafe20bea023575f7f016c919997f2ecf373e1b345dfab6596382e973509191a35050565b50805460008255906000526020600020908101906125969190612599565b50565b6125b791905b808211156125b3576000815560010161259f565b5090565b905600696e76616c6964206164647265737300000000000000000000000000000000007065726d697373696f6e2064656e69656400000000000000000000000000000070726f746f636f6c206973206e6f742072756e696e6700000000000000000000a165627a7a7230582046f7e27e9fd9704a88b677dabf62a5a01e632e9569021e3e531b915e1b7a51f20029" + } + }, + "post": { + "0x018f4199ff26c0cb06bf0ccfc00995c05c9e5c04": { + "storage": { + "0x3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31": "0x0000000000000000000000006a561b5a6a8f14724de26c3bf922c9e884fa3df2", + "0xb2401e68d452ad3af4aed95d6e19d1a690ed00a9a5bee1b2b0a83b6028446a4f": "0x0000000000000000000000007b2493d3ef8b32de6fe0e17e1dedb0ca10743a76", + "0xb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0x6a561b5a6a8f14724de26c3bf922c9e884fa3df2": { + "code": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306661abd811461009d5780634d9431ea146100c45780634e91db08146100fa57806354fd4d50146101155780638eaa6ac014610140578063a6ed563e14610158578063af640d0f14610170578063c031a18014610185578063cd10c04b14610212575b600080fd5b3480156100a957600080fd5b506100b2610250565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100f873ffffffffffffffffffffffffffffffffffffffff6004351660ff60243516610256565b005b34801561010657600080fd5b506100f8600435602435610333565b34801561012157600080fd5b5061012a61040c565b6040805160ff9092168252519081900360200190f35b34801561014c57600080fd5b506100b2600435610415565b34801561016457600080fd5b506100b2600435610426565b34801561017c57600080fd5b5061012a610438565b34801561019157600080fd5b5061019d600435610446565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d75781810151838201526020016101bf565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021e57600080fd5b50610227610474565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60015481565b60025473ffffffffffffffffffffffffffffffffffffffff16156102db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616e2062652063616c6c6564206f6e6c79206f6e6365000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff90931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091556000805460ff9092166101000261ff0019909216919091179055565b60025460009073ffffffffffffffffffffffffffffffffffffffff1633146103bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b506000828152600360205260409020548115156103e95780156103e457600180546000190190555b6103f9565b8015156103f95760018054810190555b5060009182526003602052604090912055565b60005460ff1681565b600061042082610426565b92915050565b60009081526003602052604090205490565b600054610100900460ff1681565b6000908152600360209081526040918290205482518083019190915282518082039092018252820190915290565b60025473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820f02148b8813fd7cf89e5d30a415e72b869409ec83d5adaa7155dd359d0189aa40029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000102", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x000000000000000000000000018f4199ff26c0cb06bf0ccfc00995c05c9e5c04" + } + }, + "0x7b2493d3ef8b32de6fe0e17e1dedb0ca10743a76": { + "code": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166329ba7bb2811461009d5780632aa71e24146100ce57806366259e7f146100f45780636f78c7cd1461010c57806384c9f8f6146101245780638da5cb5b146101a4578063e14c9e2e146101b9578063e55cb3d414610243578063f2fde38b1461025b575b600080fd5b3480156100a957600080fd5b506100b261027c565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100f2600435600160a060020a036024351661028b565b005b34801561010057600080fd5b506100f2600435610309565b34801561011857600080fd5b506100f26004356103c2565b34801561013057600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261019094600160a060020a03813516946024803595604435953695608494930191819084018382808284375094975061047e9650505050505050565b604080519115158252519081900360200190f35b3480156101b057600080fd5b506100b2610497565b3480156101c557600080fd5b506101ce6104a6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102085781810151838201526020016101f0565b50505050905090810190601f1680156102355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024f57600080fd5b5061019060043561053c565b34801561026757600080fd5b506100f2600160a060020a0360043516610551565b600254600160a060020a031681565b60045460ff16156102e6576040805160e560020a62461bcd02815260206004820152600e60248201527f6f6e6c7920696e6974206f6e6365000000000000000000000000000000000000604482015290519081900360640190fd5b6004805460ff191660011790556102fc826103c2565b61030581610551565b5050565b600154600160a060020a031633148061032c5750600154600160a060020a031632145b1515610382576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191690555182917f87ed60f85ca9455ddc75377b551f6e9345e1191987f08d339604ebbd4d274c3c91a250565b600154600160a060020a03163314806103e55750600154600160a060020a031632145b151561043b576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600081815260036020526040808220805460ff191660011790555182917f564472207cf6697287aa046e48d6a90a31d9be632c632a96785adf57c79e6fa491a250565b505060009081526003602052604090205460ff16919050565b600154600160a060020a031681565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105325780601f1061050757610100808354040283529160200191610532565b820191906000526020600020905b81548152906001019060200180831161051557829003601f168201915b5050505050905090565b60036020526000908152604090205460ff1681565b600154600160a060020a03163314806105745750600154600160a060020a031632145b15156105ca576040805160e560020a62461bcd02815260206004820152601160248201527f7065726d697373696f6e2064656e696564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561062a576040805160e560020a62461bcd02815260206004820152600f60248201527f696e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a72305820cb8cd44a087ec93943acb1f88c01f7125eb473f3afd9a7cd6275acdbbc6879000029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x416363657373506f6c696379436c617373696300000000000000000000000026", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000002626d6855f3fbb2edf7a852eabccf1ab128310c5", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x000000000000000000000000731f7ffa916a24049457f959b8c160191666c58e", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xa89d69e6384d2757dc9a8f6c8d1419f1350090fbd3c519b5bdf0dc0822eba8f0": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + } + }, + "config": { + "diffMode": true + } +} \ No newline at end of file diff --git a/tracers/testdata/prestate_diff/energy.json b/tracers/testdata/prestate_diff/energy.json new file mode 100644 index 000000000..af46b68da --- /dev/null +++ b/tracers/testdata/prestate_diff/energy.json @@ -0,0 +1,74 @@ + +{ + "context": { + "blockID": "0x001af795f943431e8ece925274e04d651a5cc774500f0767fb4cfac684b28528", + "blockTime": 1547695710, + "beneficiary": "0x3ded060b718e06118ca2c8c5142f106eed5f1063", + "txOrigin": "0xf6e78a5584c06e2dec5c675d357f050a5402a730", + "clauseIndex": 0, + "txID": "0xa5d753aff9574eacddd329a713f197d496da62a3d78dd558a10d2d5a50e0c892", + "gas": "0x9ed7" + }, + "clause": { + "to": "0xd015d91b42bed5feaf242082b11b83b431abbf4f", + "value": "0xde0b6b3a7640000", + "data": "0xab23bfb50000000000000000000000000000000000000000000000008731ea11815ba83f" + }, + "state": { + "0x0000000000000000000000000000456e65726779": { + "balance": "0x0", + "energy": "0x29a2241af62c0001", + "code": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce5671461025957806370a082311461028a57806395d89b41146102e1578063a9059cbb14610371578063bb35783b146103d6578063d89135cd1461045b578063dd62ed3e14610486575b600080fd5b3480156100c057600080fd5b506100c96104fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061053a565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be61062b565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106d1565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610865565b604051808260ff1660ff16815260200191505060405180910390f35b34801561029657600080fd5b506102cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086e565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b506102f661094d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033657808201518184015260208101905061031b565b50505050905090810190601f1680156103635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037d57600080fd5b506103bc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061098a565b604051808215151515815260200191505060405180910390f35b3480156103e257600080fd5b50610441600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109a1565b604051808215151515815260200191505060405180910390f35b34801561046757600080fd5b50610470610b67565b6040518082815260200191505060405180910390f35b34801561049257600080fd5b506104e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c0d565b6040518082815260200191505060405180910390f35b60606040805190810160405280600681526020017f566554686f720000000000000000000000000000000000000000000000000000815250905090565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1663592b389c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b505050506040513d60208110156106bb57600080fd5b8101908080519060200190929190505050905090565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156107c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6275696c74696e3a20696e73756666696369656e7420616c6c6f77616e63650081525060200191505060405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061085a848484610c93565b600190509392505050565b60006012905090565b60003073ffffffffffffffffffffffffffffffffffffffff1663ee660480836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561090b57600080fd5b505af115801561091f573d6000803e3d6000fd5b505050506040513d602081101561093557600080fd5b81019080805190602001909291905050509050919050565b60606040805190810160405280600481526020017f5654484f00000000000000000000000000000000000000000000000000000000815250905090565b6000610997338484610c93565b6001905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610add57503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1663059950e9866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a8a57600080fd5b505af1158015610a9e573d6000803e3d6000fd5b505050506040513d6020811015610ab457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b1515610b51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6275696c74696e3a2073656c66206f72206d617374657220726571756972656481525060200191505060405180910390fd5b610b5c848484610c93565b600190509392505050565b60003073ffffffffffffffffffffffffffffffffffffffff1663138d4d0c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610bcd57600080fd5b505af1158015610be1573d6000803e3d6000fd5b505050506040513d6020811015610bf757600080fd5b8101908080519060200190929190505050905090565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000811115610eaa573073ffffffffffffffffffffffffffffffffffffffff166339ed08d584836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d3f57600080fd5b505af1158015610d53573d6000803e3d6000fd5b505050506040513d6020811015610d6957600080fd5b81019080805190602001909291905050501515610dee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6275696c74696e3a20696e73756666696369656e742062616c616e636500000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16631cedfac183836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e9157600080fd5b505af1158015610ea5573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505600a165627a7a72305820bd55cb9aff347dc60fe8280ae6b08a6f6deacc85a4e1c89ba0a8ef31fbcaecc60029" + }, + "0x3ded060b718e06118ca2c8c5142f106eed5f1063": { + "balance": "0x0", + "energy": "0x6c06e6b77a252fe6a24bf" + }, + "0xd015d91b42bed5feaf242082b11b83b431abbf4f": { + "balance": "0xd3e7c83a3e7444c7394f", + "energy": "0x8498047bc2d73a58283b4", + "code": "0x60806040526004361061018a5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630a655e25811461018f5780631343d734146101a9578063261befa0146101d35780632646f486146101e857806336373513146102195780634191c4171461024e5780634209fff11461026f578063421b2d8b146102905780634524bd6f146102b15780634ec7fb81146102cc578063579cd3ca146102e15780635aeb43ce1461030f5780635dde8ff61461031757806361414aae1461032f578063647eecff1461035d57806379ba50971461037557806380100aa31461038a5780638c87895d146103a45780638da5cb5b146103d55780638f5f2846146103ea578063959499b61461040b5780639857518814610420578063ab23bfb514610441578063bf7545581461044c578063c511ed5e14610461578063c993154d14610476578063d043540a14610497578063d4ee1d90146104b2578063e08fe144146104c7578063ecbca55d146104e8578063f2fde38b14610506575b600080fd5b34801561019b57600080fd5b506101a7600435610527565b005b3480156101b557600080fd5b506101c160043561076c565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161087e565b3480156101f457600080fd5b506101fd610884565b60408051600160a060020a039092168252519081900360200190f35b34801561022557600080fd5b5061023a600160a060020a0360043516610894565b604080519115158252519081900360200190f35b34801561025a57600080fd5b506101c1600160a060020a03600435166108ac565b34801561027b57600080fd5b5061023a600160a060020a03600435166108be565b34801561029c57600080fd5b506101a7600160a060020a03600435166108d0565b3480156102bd57600080fd5b506101a76004356024356108fd565b3480156102d857600080fd5b506101fd61092c565b3480156102ed57600080fd5b506102f661093b565b6040805163ffffffff9092168252519081900360200190f35b6101a761095f565b34801561032357600080fd5b506101c1600435610a13565b34801561033b57600080fd5b50610344610a64565b6040805192835260208301919091528051918290030190f35b34801561036957600080fd5b506101c1600435610a78565b34801561038157600080fd5b506101a7610b7b565b34801561039657600080fd5b506101a76004351515610c62565b3480156103b057600080fd5b506103b9610cc4565b604080516001606860020a039092168252519081900360200190f35b3480156103e157600080fd5b506101fd610cd3565b3480156103f657600080fd5b506101a7600160a060020a0360043516610cde565b34801561041757600080fd5b506101a7610d0a565b34801561042c57600080fd5b506101a7600160a060020a036004351661101b565b6101c1600435611045565b34801561045857600080fd5b5061023a611444565b34801561046d57600080fd5b506101a7611469565b34801561048257600080fd5b506101a7600160a060020a0360043516611486565b3480156104a357600080fd5b506101c16004356024356114b2565b3480156104be57600080fd5b506101fd611852565b3480156104d357600080fd5b506101a7600160a060020a0360043516611861565b3480156104f457600080fd5b506101a763ffffffff6004351661188b565b34801561051257600080fd5b506101a7600160a060020a03600435166119bf565b61053030611a73565b600160a060020a0316331461054157fe5b600154604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518392600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156105ac57600080fd5b505af11580156105c0573d6000803e3d6000fd5b505050506040513d60208110156105d657600080fd5b50511015610654576040805160e560020a62461bcd02815260206004820152602960248201527f4d75737420686176652073657420616c6c6f77616e636520666f72207468697360448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156106c757600080fd5b505af11580156106db573d6000803e3d6000fd5b505050506040513d60208110156106f157600080fd5b50511515610749576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b61075d61075860035483611b12565b611b28565b6001606860020a031660035550565b6000808083116107ec576040805160e560020a62461bcd02815260206004820152602360248201527f4d757374206861766520616d6f756e742073657420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60035460025461080691906001606860020a031685611b40565b905061081181610a13565b6002549092506001606860020a03168210610878576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b50919050565b60035481565b600061088f30611b82565b905090565b60006108a6308363ffffffff611bef16565b92915050565b60006108a6308363ffffffff611c9716565b60006108a6308363ffffffff611d0c16565b6108d930611a73565b600160a060020a031633146108ea57fe5b6108fa308263ffffffff611d8116565b50565b61090630611a73565b600160a060020a0316331461091757fe5b61092830838363ffffffff611e0e16565b5050565b600154600160a060020a031681565b60015474010000000000000000000000000000000000000000900463ffffffff1681565b61096830611a73565b600160a060020a0316331461097957fe5b600034116109d1576040805160e560020a62461bcd02815260206004820152601260248201527f4d7573742068617665207665742073656e740000000000000000000000000000604482015290519081900360640190fd5b6002546109eb90610758906001606860020a031634611b12565b600280546cffffffffffffffffffffffffff19166001606860020a0392909216919091179055565b600154600090620f424090610a5490849063ffffffff7401000000000000000000000000000000000000000090910416830367ffffffffffffffff16611ea2565b811515610a5d57fe5b0492915050565b600080610a7030611ec6565b915091509091565b600080808311610af8576040805160e560020a62461bcd02815260206004820152602360248201527f4d757374206861766520616d6f756e742073657420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600354610b12916001606860020a03169085611b40565b9050610b1d81610a13565b6003549092508210610878576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600054600160a060020a03163314610bdd576040805160e560020a62461bcd02815260206004820152601c60248201527f73656e646572206d75737420626520746865206e6577206f776e657200000000604482015290519081900360640190fd5b600054600160a060020a0316610bf1610cd3565b600160a060020a03167f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a60405160405180910390a3600054610c43903090600160a060020a031663ffffffff611f6f16565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b610c6b30611a73565b600160a060020a03163314610c7c57fe5b6001805491151578010000000000000000000000000000000000000000000000000278ff00000000000000000000000000000000000000000000000019909216919091179055565b6002546001606860020a031681565b600061088f30611a73565b610ce730611a73565b600160a060020a03163314610cf857fe5b6108fa81600160a060020a0316611fe0565b6000610d1530611a73565b600160a060020a03163314610d2657fe5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d8c57600080fd5b505af1158015610da0573d6000803e3d6000fd5b505050506040513d6020811015610db657600080fd5b50516003549091508111610e3a576040805160e560020a62461bcd02815260206004820152603060248201527f666174616c3a20656e657267792062616c616e6365206c6f776572207468616e60448201527f207669727475616c2062616c616e636500000000000000000000000000000000606482015290519081900360840190fd5b6002546001606860020a0316303111610ec3576040805160e560020a62461bcd02815260206004820152602d60248201527f666174616c3a207665742062616c616e6365206c6f776572207468616e20766960448201527f727475616c2062616c616e636500000000000000000000000000000000000000606482015290519081900360840190fd5b600154600354600160a060020a039091169063a9059cbb903390610ee8908590612064565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f5357600080fd5b505af1158015610f67573d6000803e3d6000fd5b505050506040513d6020811015610f7d57600080fd5b50511515610fd5576040805160e560020a62461bcd02815260206004820152601660248201527f7472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b60025433906108fc90610ff3903031906001606860020a0316612064565b6040518115909202916000818181858888f19350505050158015610928573d6000803e3d6000fd5b61102430611a73565b600160a060020a0316331461103557fe5b6108fa308263ffffffff61207616565b600080600080600080600160189054906101000a900460ff1615156110b4576040805160e560020a62461bcd02815260206004820152601d60248201527f636f6e76657273696f6e2069732064697361626c6564206279206e6f77000000604482015290519081900360640190fd5b60003411611132576040805160e560020a62461bcd02815260206004820152602160248201527f4d7573742068617665207665742073656e7420666f7220636f6e76657273696f60448201527f6e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051349750600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561119b57600080fd5b505af11580156111af573d6000803e3d6000fd5b505050506040513d60208110156111c557600080fd5b50516002546003549195506111e6916001606860020a039091169087611b40565b92506111f183610a13565b91505080820381158015906112065750868210155b151561125c576040805160e560020a62461bcd02815260206004820152601860248201527f496e76616c696420636f6e76657274656420616d6f756e740000000000000000604482015290519081900360640190fd5b8382106112b5576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561132257600080fd5b505af1158015611336573d6000803e3d6000fd5b505050506040513d602081101561134c57600080fd5b505115156113a4576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b6002546113be90610758906001606860020a031687611b12565b600280546cffffffffffffffffffffffffff19166001606860020a03929092169190911790556003546113f19084612064565b6003556040805186815260208101849052808201839052905133916000917ffba23a36f0fad77947f553b9a89c1848ac869c8ce4c1c0d93cb14a9f4ba107f49181900360600190a3509095945050505050565b6001547801000000000000000000000000000000000000000000000000900460ff1681565b61147230611a73565b600160a060020a0316331461148357fe5b33ff5b61148f30611a73565b600160a060020a031633146114a057fe5b6108fa81600160a060020a03166120e7565b600080600080600160189054906101000a900460ff16151561151e576040805160e560020a62461bcd02815260206004820152601d60248201527f636f6e76657273696f6e2069732064697361626c6564206279206e6f77000000604482015290519081900360640190fd5b6000861161159c576040805160e560020a62461bcd02815260206004820152602360248201527f4d75737420686176652073657420616d6f756e7420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003546002546115b691906001606860020a031688611b40565b92506115c183610a13565b91505080820381158015906115d65750848210155b151561162c576040805160e560020a62461bcd02815260206004820152601860248201527f496e76616c696420636f6e76657274656420616d6f756e740000000000000000604482015290519081900360640190fd5b6002546001606860020a03168210611690576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018990529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b50511515611785576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b604051339083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b506117bf60035487611b12565b6003556002546117dc90610758906001606860020a031685612064565b600280546cffffffffffffffffffffffffff19166001606860020a03929092169190911790556040805187815260208101849052808201839052905133916001917ffba23a36f0fad77947f553b9a89c1848ac869c8ce4c1c0d93cb14a9f4ba107f4916060908290030190a35090949350505050565b600054600160a060020a031681565b61186a30611a73565b600160a060020a0316331461187b57fe5b6108fa308263ffffffff61215016565b61189430611a73565b600160a060020a031633146118a557fe5b60008163ffffffff16101580156118c45750620f424063ffffffff8216105b151561191a576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420636f6e76657273696f6e2066656500000000000000000000604482015290519081900360640190fd5b6001546040805163ffffffff7401000000000000000000000000000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16001805463ffffffff909216740100000000000000000000000000000000000000000277ffffffff000000000000000000000000000000000000000019909216919091179055565b6119c830611a73565b600160a060020a031633146119d957fe5b6119e1610cd3565b600160a060020a0382811691161415611a44576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e2774207472616e7366657220746f2063757272656e74206f776e657200604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b604080517f9ed153c0000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516000916850726f746f7479706591639ed153c09160248082019260209290919082900301818787803b158015611ae057600080fd5b505af1158015611af4573d6000803e3d6000fd5b505050506040513d6020811015611b0a57600080fd5b505192915050565b600082820183811015611b2157fe5b9392505050565b60006001606860020a0382168214611b3c57fe5b5090565b60008084118015611b515750600083115b1515611b5c57600080fd5b611b668483611b12565b611b708484611ea2565b811515611b7957fe5b04949350505050565b604080517f23d8c7db000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516000916850726f746f74797065916323d8c7db9160248082019260209290919082900301818787803b158015611ae057600080fd5b604080517fd87333ac000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f747970659163d87333ac9160448082019260209290919082900301818787803b158015611c6457600080fd5b505af1158015611c78573d6000803e3d6000fd5b505050506040513d6020811015611c8e57600080fd5b50519392505050565b604080517fc9c4fc41000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f747970659163c9c4fc419160448082019260209290919082900301818787803b158015611c6457600080fd5b604080517f02d43dc8000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f74797065916302d43dc89160448082019260209290919082900301818787803b158015611c6457600080fd5b604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f7479706591638ca3b44891604480830192600092919082900301818387803b158015611df257600080fd5b505af1158015611e06573d6000803e3d6000fd5b505050505050565b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152600160a060020a0385166004820152602481018490526044810183905290516850726f746f7479706591633659f8ed91606480830192600092919082900301818387803b158015611e8557600080fd5b505af1158015611e99573d6000803e3d6000fd5b50505050505050565b6000828202831580611ebe5750828482811515611ebb57fe5b04145b1515611b2157fe5b604080517f80df45b4000000000000000000000000000000000000000000000000000000008152600160a060020a0383166004820152815160009283926850726f746f74797065926380df45b49260248084019391929182900301818787803b158015611f3257600080fd5b505af1158015611f46573d6000803e3d6000fd5b505050506040513d6040811015611f5c57600080fd5b5080516020909101519092509050915091565b604080517f01378b58000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f74797065916301378b5891604480830192600092919082900301818387803b158015611df257600080fd5b604080517fcdd2a99f000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516850726f746f747970659163cdd2a99f91602480830192600092919082900301818387803b15801561204957600080fd5b505af115801561205d573d6000803e3d6000fd5b5050505050565b60008183101561207057fe5b50900390565b604080517f22928d6b000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f74797065916322928d6b91604480830192600092919082900301818387803b158015611df257600080fd5b604080517f766c4f37000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516850726f746f747970659163766c4f3791602480830192600092919082900301818387803b15801561204957600080fd5b604080517f3871a9fb000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f7479706591633871a9fb91604480830192600092919082900301818387803b158015611df257600080fd00436f6e76657274656420616d6f756e74206d757374206265206c6f776572207468616e207468652062616c616e6365206f662074686973000000000000000000a165627a7a7230582059af12e6cd07bc872761bb5bb62797b6d3fd772e3a2845acc70bdd5b3a01cefd0029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000001000013880000000000000000000000000000456e65726779", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000d3e6744e6d2bbeaf28c8", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000000000000000000000084429df6f12b29b8651eb" + } + }, + "0xf6e78a5584c06e2dec5c675d357f050a5402a730": { + "balance": "0x4a84c8914f5f81ed2d6", + "energy": "0x271c1b84e0a97e885cb3" + } + }, + "pre": { + "0xd015d91b42bed5feaf242082b11b83b431abbf4f": { + "balance": "0xd3e7c83a3e7444c7394f", + "energy": "0x8498047bc2d73a58283b4", + "code": "0x60806040526004361061018a5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630a655e25811461018f5780631343d734146101a9578063261befa0146101d35780632646f486146101e857806336373513146102195780634191c4171461024e5780634209fff11461026f578063421b2d8b146102905780634524bd6f146102b15780634ec7fb81146102cc578063579cd3ca146102e15780635aeb43ce1461030f5780635dde8ff61461031757806361414aae1461032f578063647eecff1461035d57806379ba50971461037557806380100aa31461038a5780638c87895d146103a45780638da5cb5b146103d55780638f5f2846146103ea578063959499b61461040b5780639857518814610420578063ab23bfb514610441578063bf7545581461044c578063c511ed5e14610461578063c993154d14610476578063d043540a14610497578063d4ee1d90146104b2578063e08fe144146104c7578063ecbca55d146104e8578063f2fde38b14610506575b600080fd5b34801561019b57600080fd5b506101a7600435610527565b005b3480156101b557600080fd5b506101c160043561076c565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161087e565b3480156101f457600080fd5b506101fd610884565b60408051600160a060020a039092168252519081900360200190f35b34801561022557600080fd5b5061023a600160a060020a0360043516610894565b604080519115158252519081900360200190f35b34801561025a57600080fd5b506101c1600160a060020a03600435166108ac565b34801561027b57600080fd5b5061023a600160a060020a03600435166108be565b34801561029c57600080fd5b506101a7600160a060020a03600435166108d0565b3480156102bd57600080fd5b506101a76004356024356108fd565b3480156102d857600080fd5b506101fd61092c565b3480156102ed57600080fd5b506102f661093b565b6040805163ffffffff9092168252519081900360200190f35b6101a761095f565b34801561032357600080fd5b506101c1600435610a13565b34801561033b57600080fd5b50610344610a64565b6040805192835260208301919091528051918290030190f35b34801561036957600080fd5b506101c1600435610a78565b34801561038157600080fd5b506101a7610b7b565b34801561039657600080fd5b506101a76004351515610c62565b3480156103b057600080fd5b506103b9610cc4565b604080516001606860020a039092168252519081900360200190f35b3480156103e157600080fd5b506101fd610cd3565b3480156103f657600080fd5b506101a7600160a060020a0360043516610cde565b34801561041757600080fd5b506101a7610d0a565b34801561042c57600080fd5b506101a7600160a060020a036004351661101b565b6101c1600435611045565b34801561045857600080fd5b5061023a611444565b34801561046d57600080fd5b506101a7611469565b34801561048257600080fd5b506101a7600160a060020a0360043516611486565b3480156104a357600080fd5b506101c16004356024356114b2565b3480156104be57600080fd5b506101fd611852565b3480156104d357600080fd5b506101a7600160a060020a0360043516611861565b3480156104f457600080fd5b506101a763ffffffff6004351661188b565b34801561051257600080fd5b506101a7600160a060020a03600435166119bf565b61053030611a73565b600160a060020a0316331461054157fe5b600154604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518392600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156105ac57600080fd5b505af11580156105c0573d6000803e3d6000fd5b505050506040513d60208110156105d657600080fd5b50511015610654576040805160e560020a62461bcd02815260206004820152602960248201527f4d75737420686176652073657420616c6c6f77616e636520666f72207468697360448201527f20636f6e74726163740000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156106c757600080fd5b505af11580156106db573d6000803e3d6000fd5b505050506040513d60208110156106f157600080fd5b50511515610749576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b61075d61075860035483611b12565b611b28565b6001606860020a031660035550565b6000808083116107ec576040805160e560020a62461bcd02815260206004820152602360248201527f4d757374206861766520616d6f756e742073657420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60035460025461080691906001606860020a031685611b40565b905061081181610a13565b6002549092506001606860020a03168210610878576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b50919050565b60035481565b600061088f30611b82565b905090565b60006108a6308363ffffffff611bef16565b92915050565b60006108a6308363ffffffff611c9716565b60006108a6308363ffffffff611d0c16565b6108d930611a73565b600160a060020a031633146108ea57fe5b6108fa308263ffffffff611d8116565b50565b61090630611a73565b600160a060020a0316331461091757fe5b61092830838363ffffffff611e0e16565b5050565b600154600160a060020a031681565b60015474010000000000000000000000000000000000000000900463ffffffff1681565b61096830611a73565b600160a060020a0316331461097957fe5b600034116109d1576040805160e560020a62461bcd02815260206004820152601260248201527f4d7573742068617665207665742073656e740000000000000000000000000000604482015290519081900360640190fd5b6002546109eb90610758906001606860020a031634611b12565b600280546cffffffffffffffffffffffffff19166001606860020a0392909216919091179055565b600154600090620f424090610a5490849063ffffffff7401000000000000000000000000000000000000000090910416830367ffffffffffffffff16611ea2565b811515610a5d57fe5b0492915050565b600080610a7030611ec6565b915091509091565b600080808311610af8576040805160e560020a62461bcd02815260206004820152602360248201527f4d757374206861766520616d6f756e742073657420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600354610b12916001606860020a03169085611b40565b9050610b1d81610a13565b6003549092508210610878576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600054600160a060020a03163314610bdd576040805160e560020a62461bcd02815260206004820152601c60248201527f73656e646572206d75737420626520746865206e6577206f776e657200000000604482015290519081900360640190fd5b600054600160a060020a0316610bf1610cd3565b600160a060020a03167f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a60405160405180910390a3600054610c43903090600160a060020a031663ffffffff611f6f16565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b610c6b30611a73565b600160a060020a03163314610c7c57fe5b6001805491151578010000000000000000000000000000000000000000000000000278ff00000000000000000000000000000000000000000000000019909216919091179055565b6002546001606860020a031681565b600061088f30611a73565b610ce730611a73565b600160a060020a03163314610cf857fe5b6108fa81600160a060020a0316611fe0565b6000610d1530611a73565b600160a060020a03163314610d2657fe5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d8c57600080fd5b505af1158015610da0573d6000803e3d6000fd5b505050506040513d6020811015610db657600080fd5b50516003549091508111610e3a576040805160e560020a62461bcd02815260206004820152603060248201527f666174616c3a20656e657267792062616c616e6365206c6f776572207468616e60448201527f207669727475616c2062616c616e636500000000000000000000000000000000606482015290519081900360840190fd5b6002546001606860020a0316303111610ec3576040805160e560020a62461bcd02815260206004820152602d60248201527f666174616c3a207665742062616c616e6365206c6f776572207468616e20766960448201527f727475616c2062616c616e636500000000000000000000000000000000000000606482015290519081900360840190fd5b600154600354600160a060020a039091169063a9059cbb903390610ee8908590612064565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f5357600080fd5b505af1158015610f67573d6000803e3d6000fd5b505050506040513d6020811015610f7d57600080fd5b50511515610fd5576040805160e560020a62461bcd02815260206004820152601660248201527f7472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b60025433906108fc90610ff3903031906001606860020a0316612064565b6040518115909202916000818181858888f19350505050158015610928573d6000803e3d6000fd5b61102430611a73565b600160a060020a0316331461103557fe5b6108fa308263ffffffff61207616565b600080600080600080600160189054906101000a900460ff1615156110b4576040805160e560020a62461bcd02815260206004820152601d60248201527f636f6e76657273696f6e2069732064697361626c6564206279206e6f77000000604482015290519081900360640190fd5b60003411611132576040805160e560020a62461bcd02815260206004820152602160248201527f4d7573742068617665207665742073656e7420666f7220636f6e76657273696f60448201527f6e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051349750600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561119b57600080fd5b505af11580156111af573d6000803e3d6000fd5b505050506040513d60208110156111c557600080fd5b50516002546003549195506111e6916001606860020a039091169087611b40565b92506111f183610a13565b91505080820381158015906112065750868210155b151561125c576040805160e560020a62461bcd02815260206004820152601860248201527f496e76616c696420636f6e76657274656420616d6f756e740000000000000000604482015290519081900360640190fd5b8382106112b5576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561132257600080fd5b505af1158015611336573d6000803e3d6000fd5b505050506040513d602081101561134c57600080fd5b505115156113a4576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b6002546113be90610758906001606860020a031687611b12565b600280546cffffffffffffffffffffffffff19166001606860020a03929092169190911790556003546113f19084612064565b6003556040805186815260208101849052808201839052905133916000917ffba23a36f0fad77947f553b9a89c1848ac869c8ce4c1c0d93cb14a9f4ba107f49181900360600190a3509095945050505050565b6001547801000000000000000000000000000000000000000000000000900460ff1681565b61147230611a73565b600160a060020a0316331461148357fe5b33ff5b61148f30611a73565b600160a060020a031633146114a057fe5b6108fa81600160a060020a03166120e7565b600080600080600160189054906101000a900460ff16151561151e576040805160e560020a62461bcd02815260206004820152601d60248201527f636f6e76657273696f6e2069732064697361626c6564206279206e6f77000000604482015290519081900360640190fd5b6000861161159c576040805160e560020a62461bcd02815260206004820152602360248201527f4d75737420686176652073657420616d6f756e7420666f7220636f6e7665727360448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6003546002546115b691906001606860020a031688611b40565b92506115c183610a13565b91505080820381158015906115d65750848210155b151561162c576040805160e560020a62461bcd02815260206004820152601860248201527f496e76616c696420636f6e76657274656420616d6f756e740000000000000000604482015290519081900360640190fd5b6002546001606860020a03168210611690576040805160e560020a62461bcd02815260206004820152603760248201526000805160206121c283398151915260448201526000805160206121e2833981519152606482015290519081900360840190fd5b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018990529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b50511515611785576040805160e560020a62461bcd02815260206004820152601660248201527f5472616e7366657220656e65726779206661696c656400000000000000000000604482015290519081900360640190fd5b604051339083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b506117bf60035487611b12565b6003556002546117dc90610758906001606860020a031685612064565b600280546cffffffffffffffffffffffffff19166001606860020a03929092169190911790556040805187815260208101849052808201839052905133916001917ffba23a36f0fad77947f553b9a89c1848ac869c8ce4c1c0d93cb14a9f4ba107f4916060908290030190a35090949350505050565b600054600160a060020a031681565b61186a30611a73565b600160a060020a0316331461187b57fe5b6108fa308263ffffffff61215016565b61189430611a73565b600160a060020a031633146118a557fe5b60008163ffffffff16101580156118c45750620f424063ffffffff8216105b151561191a576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420636f6e76657273696f6e2066656500000000000000000000604482015290519081900360640190fd5b6001546040805163ffffffff7401000000000000000000000000000000000000000090930483168152918316602083015280517f81cd2ffb37dd237c0e4e2a3de5265fcf9deb43d3e7801e80db9f1ccfba7ee6009281900390910190a16001805463ffffffff909216740100000000000000000000000000000000000000000277ffffffff000000000000000000000000000000000000000019909216919091179055565b6119c830611a73565b600160a060020a031633146119d957fe5b6119e1610cd3565b600160a060020a0382811691161415611a44576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e2774207472616e7366657220746f2063757272656e74206f776e657200604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b604080517f9ed153c0000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516000916850726f746f7479706591639ed153c09160248082019260209290919082900301818787803b158015611ae057600080fd5b505af1158015611af4573d6000803e3d6000fd5b505050506040513d6020811015611b0a57600080fd5b505192915050565b600082820183811015611b2157fe5b9392505050565b60006001606860020a0382168214611b3c57fe5b5090565b60008084118015611b515750600083115b1515611b5c57600080fd5b611b668483611b12565b611b708484611ea2565b811515611b7957fe5b04949350505050565b604080517f23d8c7db000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516000916850726f746f74797065916323d8c7db9160248082019260209290919082900301818787803b158015611ae057600080fd5b604080517fd87333ac000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f747970659163d87333ac9160448082019260209290919082900301818787803b158015611c6457600080fd5b505af1158015611c78573d6000803e3d6000fd5b505050506040513d6020811015611c8e57600080fd5b50519392505050565b604080517fc9c4fc41000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f747970659163c9c4fc419160448082019260209290919082900301818787803b158015611c6457600080fd5b604080517f02d43dc8000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516000916850726f746f74797065916302d43dc89160448082019260209290919082900301818787803b158015611c6457600080fd5b604080517f8ca3b448000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f7479706591638ca3b44891604480830192600092919082900301818387803b158015611df257600080fd5b505af1158015611e06573d6000803e3d6000fd5b505050505050565b604080517f3659f8ed000000000000000000000000000000000000000000000000000000008152600160a060020a0385166004820152602481018490526044810183905290516850726f746f7479706591633659f8ed91606480830192600092919082900301818387803b158015611e8557600080fd5b505af1158015611e99573d6000803e3d6000fd5b50505050505050565b6000828202831580611ebe5750828482811515611ebb57fe5b04145b1515611b2157fe5b604080517f80df45b4000000000000000000000000000000000000000000000000000000008152600160a060020a0383166004820152815160009283926850726f746f74797065926380df45b49260248084019391929182900301818787803b158015611f3257600080fd5b505af1158015611f46573d6000803e3d6000fd5b505050506040513d6040811015611f5c57600080fd5b5080516020909101519092509050915091565b604080517f01378b58000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f74797065916301378b5891604480830192600092919082900301818387803b158015611df257600080fd5b604080517fcdd2a99f000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516850726f746f747970659163cdd2a99f91602480830192600092919082900301818387803b15801561204957600080fd5b505af115801561205d573d6000803e3d6000fd5b5050505050565b60008183101561207057fe5b50900390565b604080517f22928d6b000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f74797065916322928d6b91604480830192600092919082900301818387803b158015611df257600080fd5b604080517f766c4f37000000000000000000000000000000000000000000000000000000008152600160a060020a038316600482015290516850726f746f747970659163766c4f3791602480830192600092919082900301818387803b15801561204957600080fd5b604080517f3871a9fb000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528316602482015290516850726f746f7479706591633871a9fb91604480830192600092919082900301818387803b158015611df257600080fd00436f6e76657274656420616d6f756e74206d757374206265206c6f776572207468616e207468652062616c616e6365206f662074686973000000000000000000a165627a7a7230582059af12e6cd07bc872761bb5bb62797b6d3fd772e3a2845acc70bdd5b3a01cefd0029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000d3e6744e6d2bbeaf28c8", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000000000000000000000084429df6f12b29b8651eb" + } + }, + "0xf6e78a5584c06e2dec5c675d357f050a5402a730": { + "balance": "0x4a84c8914f5f81ed2d6", + "energy": "0x271c1b84e0a97e885cb3" + } + }, + "post": { + "0xd015d91b42bed5feaf242082b11b83b431abbf4f": { + "balance": "0xd3e7d61af527ec2b394f", + "energy": "0x8497fbdd6109f3b2a24e4", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000d3e6822f23df661328c8", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x00000000000000000000000000000000000000000008442954d790184cf25465" + } + }, + "0xf6e78a5584c06e2dec5c675d357f050a5402a730": { + "balance": "0x4a83ea85e4250bad2d6", + "energy": "0x271ca56afd7de8e0bb83" + } + }, + "config":{ + "diffMode": true + } +} \ No newline at end of file diff --git a/tracers/testdata/prestate_diff/simple.json b/tracers/testdata/prestate_diff/simple.json new file mode 100644 index 000000000..d74dc5ebc --- /dev/null +++ b/tracers/testdata/prestate_diff/simple.json @@ -0,0 +1,93 @@ +{ + "context": { + "blockID": "0x0030583d5a6f4de574510cebec5a4b11d9011b93b9df12f2985b98c1cc2da28d", + "blockTime": 1561711250, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", + "txOrigin": "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc", + "clauseIndex": 0, + "txID": "0x9de024b8b81e68afb60b110e88790b7b227e5364c87bf316eb81549199b9c9dd", + "gas": "0x6fc38" + }, + "clause": { + "to": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", + "value": "0x8ac7230489e80000", + "data": "0xc55ac4a5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000001a642015b3737c5e97978f4cf2bd1a27dd5a24d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "state": { + "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc": { + "balance": "0x94301095758da0e71b4d44", + "energy": "0x118d9e25350f0d10acc8785" + }, + "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1": { + "balance": "0x7b55e8ffcaaa3a0000", + "energy": "0x5ca1012a1ec4bd900", + "code": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309ca541b146100eb5780630ac9b108146101dd57806321abdf5c14610218578063470259c3146103f757806358a187ef146104225780635943b64f14610491578063874ec2e7146105835780638da5cb5b146105dc578063a330681914610633578063a82a3d89146107e6578063c55ac4a51461083d578063c6a023e9146109e4578063cfdc9bd614610a29578063d0d41fe114610a67578063da09c72c14610ab8578063f2fde38b14610b0f575b600080fd5b3480156100f757600080fd5b506101db6004803603606081101561010e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561015557600080fd5b82018360208201111561016757600080fd5b8035906020019184600183028401116401000000008311171561018957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b60565b005b3480156101e957600080fd5b506102166004803603602081101561020057600080fd5b8101908080359060200190929190505050611708565b005b34801561022457600080fd5b506103f5600480360361010081101561023c57600080fd5b81019080803560ff169060200190929190803590602001909291908035906020019064010000000081111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460018302840111640100000000831117156102a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561031b57600080fd5b82018360208201111561032d57600080fd5b8035906020019184600183028401116401000000008311171561034f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf3565b005b34801561040357600080fd5b5061040c6126bb565b6040518082815260200191505060405180910390f35b34801561042e57600080fd5b5061047b6004803603604081101561044557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c1565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104ca600480360360208110156104b457600080fd5b810190808035906020019092919050505061271f565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018667ffffffffffffffff1667ffffffffffffffff1681526020018567ffffffffffffffff1667ffffffffffffffff1681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b34801561058f57600080fd5b506105da600480360360408110156105a657600080fd5b81019080803567ffffffffffffffff169060200190929190803567ffffffffffffffff1690602001909291905050506127db565b005b3480156105e857600080fd5b506105f1612a03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063f57600080fd5b5061066c6004803603602081101561065657600080fd5b8101908080359060200190929190505050612a28565b6040518088600181111561067c57fe5b60ff16815260200187600281111561069057fe5b60ff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018567ffffffffffffffff1667ffffffffffffffff168152602001806020018467ffffffffffffffff1667ffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561073e578082015181840152602081019050610723565b50505050905090810190601f16801561076b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156107a4578082015181840152602081019050610789565b50505050905090810190601f1680156107d15780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3480156107f257600080fd5b506107fb612c8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109e2600480360360c081101561085357600080fd5b81019080803560ff1690602001909291908035906020019064010000000081111561087d57600080fd5b82018360208201111561088f57600080fd5b803590602001918460018302840111640100000000831117156108b157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561092857600080fd5b82018360208201111561093a57600080fd5b8035906020019184600183028401116401000000008311171561095c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb0565b005b3480156109f057600080fd5b50610a2760048036036040811015610a0757600080fd5b810190808035906020019092919080359060200190929190505050613350565b005b348015610a3557600080fd5b50610a6560048036036020811015610a4c57600080fd5b81019080803560ff169060200190929190505050613516565b005b348015610a7357600080fd5b50610ab660048036036020811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135fd565b005b348015610ac457600080fd5b50610acd613705565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1b57600080fd5b50610b5e60048036036020811015610b3257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061372b565b005b82426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16118015610bba575060006005600083815260200190815260200160002060060154115b1515610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8383600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610cfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e6e6f7420636c61696d207477696365000000000000000000000000000081525060200191505060405180910390fd5b600060056000888152602001908152602001600020905060008787604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051602081830303815290604052805190602001209050610d7b8187613952565b73ffffffffffffffffffffffffffffffffffffffff168260010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4543445341207369676e6174757265206973206e6f742076616c69642e00000081525060200191505060405180910390fd5b60006111df836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff166001811115610e7c57fe5b6001811115610e8757fe5b81526020016001820160019054906101000a900460ff166002811115610ea957fe5b6002811115610eb457fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050613a36565b905060018360090160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508083600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550428360090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506112ae818460060154613b3b90919063ffffffff16565b836006018190555060018360010160016101000a81548160ff021916908360028111156112d757fe5b02179055506000836006015414156113105760028360010160016101000a81548160ff0219169083600281111561130a57fe5b02179055505b6116ae836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff16600181111561134957fe5b600181111561135457fe5b81526020016001820160019054906101000a900460ff16600281111561137657fe5b600281111561138157fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ca5780601f1061149f576101008083540402835291602001916114ca565b820191906000526020600020905b8154815290600101906020018083116114ad57829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508983613b54565b8773ffffffffffffffffffffffffffffffffffffffff16897fc859311bc537fef52b70fbc36471c501efbf87e5a6e8fed2edf60453ddde3d5c836040518082815260200191505060405180910390a3505050505050505050565b80426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16111515156117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b816002808111156117c257fe5b6005600083815260200190815260200160002060010160019054906101000a900460ff1660028111156117f157fe5b14151515611867576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f696e76616c696420656e76656c6f70652069640000000000000000000000000081525060200191505060405180910390fd5b60006005600085815260200190815260200160002090506000816006015490506000826006018190555060028260010160016101000a81548160ff021916908360028111156118b257fe5b0217905550611c79826101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff1660018111156118f057fe5b60018111156118fb57fe5b81526020016001820160019054906101000a900460ff16600281111561191d57fe5b600281111561192857fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a715780601f10611a4657610100808354040283529160200191611a71565b820191906000526020600020905b815481529060010190602001808311611a5457829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611baf5780601f10611b8457610100808354040283529160200191611baf565b820191906000526020600020905b815481529060010190602001808311611b9257829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b54565b8160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16857f4dcb6e6a38d712e4e01ab60d4819c3cd51347a99d3c36d78f6e25aa2918e4133836040518082815260200191505060405180910390a35050505050565b6001548710151515611d6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002548711151515611de7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8467ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611e4b5750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168567ffffffffffffffff1611155b1515611ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8267ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611f235750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff1611155b1515611f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561203c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6000819050878173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561210f57600080fd5b505afa158015612123573d6000803e3d6000fd5b505050506040513d602081101561213957600080fd5b8101908080519060200190929190505050101515156121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6e6f2073756666696369656e7420616c6c6f77616e636500000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561229757600080fd5b505af11580156122ab573d6000803e3d6000fd5b5050505060016006600082825401925050819055506122c8614006565b60006122d9858b8d8c8c8c8c613d1a565b915091506006548260000181815250508382610120019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561236657fe5b021790555060408201518160010160016101000a81548160ff0219169083600281111561238f57fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061243e9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906124e89291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a360008111156126ae5781610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561269557600080fd5b505af11580156126a9573d6000803e3d6000fd5b505050505b5050505050505050505050565b60065481565b600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008060008060006005600089815260200190815260200160002090508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160090160009054906101000a900467ffffffffffffffff168260090160089054906101000a900467ffffffffffffffff16836005015484600601548560010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff169650965096509650965096505091939550919395565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561289f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8067ffffffffffffffff168267ffffffffffffffff161115151561292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b60008167ffffffffffffffff161115156129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600360106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080600360186101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060606000606060006005600089815260200190815260200160002060010160009054906101000a900460ff16600560008a815260200190815260200160002060010160019054906101000a900460ff16600560008b815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008c8152602001908152602001600020600301600560008d815260200190815260200160002060040160009054906101000a900467ffffffffffffffff16600560008e8152602001908152602001600020600801600560008f815260200190815260200160002060090160109054906101000a900467ffffffffffffffff16849450838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612bce5780601f10612ba357610100808354040283529160200191612bce565b820191906000526020600020905b815481529060010190602001808311612bb157829003601f168201915b50505050509350818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c6a5780601f10612c3f57610100808354040283529160200191612c6a565b820191906000526020600020905b815481529060010190602001808311612c4d57829003601f168201915b505050505091509650965096509650965096509650919395979092949650565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001543410151515612d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002543411151515612da4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8367ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612e085750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168467ffffffffffffffff1611155b1515612e7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8167ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612ee05750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168267ffffffffffffffff1611155b1515612f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ff9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6001600660008282540192505081905550613012614006565b600061302383348a8a8a8a8a613d1a565b91509150600654826000018181525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561307757fe5b021790555060408201518160010160016101000a81548160ff021916908360028111156130a057fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061314f9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906131f99291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a3600081111561334657600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613344573d6000803e3d6000fd5b505b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80821115151561348c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b600081111515613504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600181905550806002819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8060ff16600060146101000a81548161ffff021916908361ffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000806041855114151561396f5760009350505050613a30565b6020850151925060408501519150606085015160001a9050601b8160ff16101561399a57601b810190505b601b8160ff16141580156139b25750601c8160ff1614155b156139c35760009350505050613a30565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015613a20573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600080826101000151905060018361018001518461016001510367ffffffffffffffff16111515613a6a5780915050613b36565b60006001811115613a7757fe5b83602001516001811115613a8757fe5b1415613abe57613ab68361018001518461016001510367ffffffffffffffff1682613fb890919063ffffffff16565b915050613b36565b600060018461016001510367ffffffffffffffff1690506000606460148385811515613ae657fe5b0402811515613af157fe5b048284811515613afd57fe5b04600143034060019004811515613b1057fe5b06019050600081118015613b245750828111155b1515613b2f57600080fd5b8093505050505b919050565b6000828211151515613b4957fe5b818303905092915050565b60008114151515613bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1683610120015173ffffffffffffffffffffffffffffffffffffffff16141515613ccd5782610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613cb057600080fd5b505af1158015613cc4573d6000803e3d6000fd5b50505050613d15565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613d13573d6000803e3d6000fd5b505b505050565b613d22614006565b6000613d2c614006565b60008090508a826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f9574c69336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613e2457600080fd5b505afa158015613e38573d6000803e3d6000fd5b505050506040513d6020811015613e4e57600080fd5b81019080805190602001909291905050501515613eb857613ea06103e8613e92600060149054906101000a900461ffff1661ffff168d613fce90919063ffffffff16565b613fb890919063ffffffff16565b9050613eb5818b613b3b90919063ffffffff16565b99505b8882602001906001811115613ec957fe5b90816001811115613ed657fe5b8152505033826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878260a001819052508642018260c0019067ffffffffffffffff16908167ffffffffffffffff1681525050898260e00181815250508160e0015182610100018181525050858261014001819052508482610160019067ffffffffffffffff16908167ffffffffffffffff1681525050600082604001906002811115613f9357fe5b90816002811115613fa057fe5b81525050818193509350505097509795505050505050565b60008183811515613fc557fe5b04905092915050565b600080831415613fe15760009050614000565b8183029050818382811515613ff257fe5b04141515613ffc57fe5b8090505b92915050565b6101c060405190810160405280600081526020016000600181111561402757fe5b81526020016000600281111561403957fe5b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061413757805160ff1916838001178555614165565b82800160010185558215614165579182015b82811115614164578251825591602001919060010190614149565b5b5090506141729190614176565b5090565b61419891905b8082111561419457600081600090555060010161417c565b5090565b9056fea165627a7a7230582022c67dbc08de2a6090385a8a4ff29a53b67e0b9ba657901ff7e1251ccedfb4b90029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000000000000000000000000001550f7dca70000", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000006400000000000000010000000000093a800000000000015180", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x000000000000000000000000d4dac3a95c741773f093d59256a21ed6fcc768a7", + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000000000000000000000000000000000000000000027", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacba": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbb": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbc": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbd": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbe": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbf": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc0": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc1": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc2": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc3": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b3b431de1c215c200000", + "energy": "0x9195b22d1d4cd881d87553" + }, + "0xd4dac3a95c741773f093d59256a21ed6fcc768a7": { + "balance": "0x0", + "energy": "0xd0eb742088e04a0edd0000", + "code": "0x6080604052600436106102665763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301921197811461026b57806301ffc9a7146102915780630324529c146102dc57806306fdde031461030057806307fa65f91461038a578063081812fc146103ab578063095ea7b3146103df57806313e7c9d81461040357806318160ddd1461042457806319f373611461044b57806319fa8f501461046c5780631e20363a146104b357806323b872dd146104d3578063287e8495146104fd5780632ad715731461054a5780632ed9b4fd1461055f5780633f4ba83a146105a5578063417c73a7146105ba578063454a2ab3146105db5780634838d165146105e65780634a49ac4c146106075780634d4f6ea9146106285780635c975abb1461064057806360836166146106555780636352211e1461067357806368f162931461068b5780636fbde40d146106bd57806370a08231146106de57806379512513146106ff5780637aaed8991461071a5780638456cb59146107595780638da5cb5b1461076e57806395d89b411461078357806396b5a755146107985780639870d7fe146107b0578063a574cea4146107d1578063a9059cbb14610850578063ac8a584a14610874578063b03e02c214610895578063ba2a954d146108b3578063ba6f2e65146108cb578063bae3e19e146108ed578063bfc206ed1461092d578063c87b56dd14610945578063cd5967db1461095d578063d415614814610981578063e6cbe35114610996578063e729e3a4146109ab578063f2fde38b146109cc578063f7e6e60c146109ed578063f9574c6914610a02575b600080fd5b34801561027757600080fd5b5061028f600435600160a060020a0360243516610a23565b005b34801561029d57600080fd5b506102c87bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960043516610c5a565b604080519115158252519081900360200190f35b3480156102e857600080fd5b5061028f600160a060020a0360043516602435610c8e565b34801561030c57600080fd5b50610315610e14565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039657600080fd5b506102c8600160a060020a0360043516610ea2565b3480156103b757600080fd5b506103c3600435610ec5565b60408051600160a060020a039092168252519081900360200190f35b3480156103eb57600080fd5b5061028f600160a060020a0360043516602435610ee0565b34801561040f57600080fd5b506102c8600160a060020a0360043516610ffd565b34801561043057600080fd5b50610439611012565b60408051918252519081900360200190f35b34801561045757600080fd5b506102c8600160a060020a0360043516611039565b34801561047857600080fd5b50610481611089565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156104bf57600080fd5b5061028f60048035602481019101356110ad565b3480156104df57600080fd5b5061028f600160a060020a0360043581169060243516604435611109565b34801561050957600080fd5b5061051860ff6004351661137e565b6040805194855267ffffffffffffffff9384166020860152918316848301529091166060830152519081900360800190f35b34801561055657600080fd5b5061043961140c565b34801561056b57600080fd5b5061028f6004356fffffffffffffffffffffffffffffffff6024351667ffffffffffffffff60443516600160a060020a0360643516611412565b3480156105b157600080fd5b506102c8611796565b3480156105c657600080fd5b5061028f600160a060020a0360043516611895565b61028f600435611997565b3480156105f257600080fd5b506102c8600160a060020a0360043516611b5e565b34801561061357600080fd5b5061028f600160a060020a0360043516611b73565b34801561063457600080fd5b506102c8600435611c71565b34801561064c57600080fd5b506102c8611d42565b34801561066157600080fd5b5061028f60043560ff60243516611d52565b34801561067f57600080fd5b506103c3600435611f4a565b34801561069757600080fd5b506106a0611f65565b6040805167ffffffffffffffff9092168252519081900360200190f35b3480156106c957600080fd5b5061028f600160a060020a0360043516611f7c565b3480156106ea57600080fd5b50610439600160a060020a036004351661206e565b34801561070b57600080fd5b5061028f60ff60043516612090565b34801561072657600080fd5b5061028f600160a060020a036004351660ff60243516604435151567ffffffffffffffff60643581169060843516612452565b34801561076557600080fd5b506102c86126ef565b34801561077a57600080fd5b506103c36127e1565b34801561078f57600080fd5b506103156127f0565b3480156107a457600080fd5b5061028f60043561284b565b3480156107bc57600080fd5b5061028f600160a060020a0360043516612a1b565b3480156107dd57600080fd5b506107e9600435612b18565b604051600160a060020a03881681526020810187600781111561080857fe5b60ff16815295151560208701525092151560408086019190915267ffffffffffffffff92831660608601529082166080850152911660a0830152519081900360c00192509050f35b34801561085c57600080fd5b5061028f600160a060020a0360043516602435612cf5565b34801561088057600080fd5b5061028f600160a060020a0360043516612f13565b3480156108a157600080fd5b5061028f60043560ff60243516613011565b3480156108bf57600080fd5b5061028f6004356133a7565b3480156108d757600080fd5b5061028f67ffffffffffffffff600435166135a5565b3480156108f957600080fd5b5061028f6004356fffffffffffffffffffffffffffffffff6024358116906044351667ffffffffffffffff6064351661363e565b34801561093957600080fd5b506103c3600435613906565b34801561095157600080fd5b50610315600435613921565b34801561096957600080fd5b5061028f600435600160a060020a03602435166139c3565b34801561098d57600080fd5b506106a0613bfa565b3480156109a257600080fd5b506103c3613c16565b3480156109b757600080fd5b50610439600160a060020a0360043516613c25565b3480156109d857600080fd5b5061028f600160a060020a0360043516613c37565b3480156109f957600080fd5b506106a0613d30565b348015610a0e57600080fd5b506102c8600160a060020a0360043516613d40565b6000805460a060020a900460ff1615610a74576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33610a7e84611f4a565b600160a060020a031614610aca576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b610ad333611039565b1515610b17576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600354604080517f0192119700000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a03858116602483015291519190921691630192119791604480830192600092919082900301818387803b158015610b8557600080fd5b505af1158015610b99573d6000803e3d6000fd5b50506003546040805160e060020a6378bd7935028152600481018890529051600160a060020a0390921693506378bd7935925060248082019260c0929091908290030181600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b505050506040513d60c0811015610c1857600080fd5b5051604051909150600160a060020a03831690849083907f9bd63f96cf38bbd738ef415c10d8ce738b56b75bbe3b31f6bf2059d35f3a8f3a90600090a4505050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000908152600a602052604090205460ff1690565b3360009081526001602052604090205460ff161515610ce5576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b600160a060020a0382161515610d33576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60008111610d8b576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101839052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b505050505050565b600b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e9a5780601f10610e6f57610100808354040283529160200191610e9a565b820191906000526020600020905b815481529060010190602001808311610e7d57829003601f168201915b505050505081565b6000610ead82611039565b8015610ebf5750610ebd82613d40565b155b92915050565b600090815260096020526040902054600160a060020a031690565b6000805460a060020a900460ff1615610f31576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b610f3a82611f4a565b9050600160a060020a038381169082161415610fa0576040805160e560020a62461bcd02815260206004820152601d60248201527f63616e6e6f7420617070726f766520796f7572206f776e20746f6b656e000000604482015290519081900360640190fd5b33600160a060020a03821614610fee576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b610ff88284613d92565b505050565b60016020526000908152604090205460ff1681565b60065467ffffffffffffffff80821668010000000000000000909204811691909101165b90565b600160a060020a03811660009081526008602052604081205460058054839290811061106157fe5b600091825260209091200154608860020a900460ff16600781111561108257fe5b1192915050565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b600054600160a060020a031633146110fd576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b610ff8600d83836148fb565b60005460a060020a900460ff1615611159576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a03821615156111a7576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b82600160a060020a03166111ba82611f4a565b600160a060020a031614611206576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6112103382613e0a565b1515611254576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b61125d81611c71565b15156112b3576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e6e6f74207472616e73666572207468697320746f6b656e000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018490529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b15801561130457600080fd5b505af1158015611318573d6000803e3d6000fd5b505050506040513d602081101561132e57600080fd5b505115611373576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b610ff8838383613e59565b60008060008061138c614979565b6004600087600781111561139c57fe5b60ff16815260208082019290925260409081016000208151608081018352815480825260019092015467ffffffffffffffff8082169583018690526801000000000000000082048116948301859052608060020a9091041660609091018190529099929850909650945092505050565b600e5481565b60005460a060020a900460ff1615611462576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b3361146c85611f4a565b600160a060020a0316146114b8576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6114c133611039565b1515611505576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600580548590811061151357fe5b600091825260209091200154608060020a900460ff161561157e576040805160e560020a62461bcd02815260206004820152601660248201527f63616e63656c20757067726164696e6720666972737400000000000000000000604482015290519081900360640190fd5b600354611595908590600160a060020a0316613d92565b600e546115a990600163ffffffff613e6e16565b600e819055600354604080517fe4f9dd2d0000000000000000000000000000000000000000000000000000000081526004810193909352602483018790526fffffffffffffffffffffffffffffffff861660448401819052606484015267ffffffffffffffff8086166084850152421660a48401523360c484015251600160a060020a039091169163e4f9dd2d9160e480830192600092919082900301818387803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b5050600e54604080516fffffffffffffffffffffffffffffffff8816808252602082015267ffffffffffffffff87168183015290518894509192507f50417882ac38f5bd0dd968f4b17f72ab38a7bd228eeec270f01466a5724684b4919081900360600190a3600354604080517fcd5967db00000000000000000000000000000000000000000000000000000000815260048101879052600160a060020a0384811660248301529151919092169163cd5967db91604480830192600092919082900301818387803b15801561173f57600080fd5b505af1158015611753573d6000803e3d6000fd5b5050600e54604051600160a060020a03851693508792507fc42e7df8c9dcd26c4a8b5134e17fa2481ababcb828e3b316b89b63c57b61f3b890600090a450505050565b60008054600160a060020a031633146117e7576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16151561184a576040805160e560020a62461bcd02815260206004820152601560248201527f6e656564732070726f746f636f6c207061757365640000000000000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a150600190565b600054600160a060020a031633146118e5576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611935576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a038116600081815260026020908152604091829020805460ff1916600190811790915582519384529083015280517f0baadf7b35b83c7d3a00874b5406dca58c60d0ff7d8c825ad02ec55484beb4559281900390910190a150565b600080548190819060a060020a900460ff16156119ec576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b6003546040805160e060020a6378bd7935028152600481018790529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b158015611a3d57600080fd5b505af1158015611a51573d6000803e3d6000fd5b505050506040513d60c0811015611a6757600080fd5b508051602091820151600354604080517f59d667a5000000000000000000000000000000000000000000000000000000008152336004820152602481018a90529051939750919550600160a060020a0316926359d667a5923492604480820193929182900301818588803b158015611ade57600080fd5b505af1158015611af2573d6000803e3d6000fd5b50505050506040513d6020811015611b0957600080fd5b505160408051338152602081018390528151929350600160a060020a03851692879287927fc2a394cb356728b3540b84dee72ea6de41f44fd94de223565258efe1549ee06f929081900390910190a450505050565b60026020526000908152604090205460ff1681565b600054600160a060020a03163314611bc3576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611c13576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0381166000818152600260209081526040808320805460ff1916905580519384529083019190915280517f0baadf7b35b83c7d3a00874b5406dca58c60d0ff7d8c825ad02ec55484beb4559281900390910190a150565b6000611c7c82613ec9565b8015611ca957506005805483908110611c9157fe5b600091825260209091200154608060020a900460ff16155b8015611cda5750600082815260076020908152604080832054600160a060020a03168352600290915290205460ff16155b8015610ebf5750600360149054906101000a900467ffffffffffffffff16600583815481101515611d0757fe5b60009182526020909120015467ffffffffffffffff720100000000000000000000000000000000000090910481169190910116421192915050565b60005460a060020a900460ff1681565b3360009081526001602052604090205460ff161515611da9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b806007811115611db557fe5b6005805484908110611dc357fe5b600091825260209091200154608860020a900460ff166007811115611de457fe5b10611e39576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c6964206c6576656c00000000000000000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018590529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b158015611e8a57600080fd5b505af1158015611e9e573d6000803e3d6000fd5b505050506040513d6020811015611eb457600080fd5b505115611ef9576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b6000600583815481101515611f0a57fe5b60009182526020909120018054911515608060020a0270ff0000000000000000000000000000000019909216919091179055611f468282613ee5565b5050565b600090815260076020526040902054600160a060020a031690565b60035460a060020a900467ffffffffffffffff1681565b600054600160a060020a03163314611fcc576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b600160a060020a038116151561201a576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60038054600160a060020a038316600160a060020a0319909116811790915560408051918252517fb69d08e828d243d599db935e2be5ce7ed7b0d2f9c9f712ff469a10a27924deb89181900360200190a150565b600061207982611039565b612084576000612087565b60015b60ff1692915050565b60008054819060a060020a900460ff16156120e3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33600090815260086020526040902054915081151561210b576121083360008061419d565b91505b600580548390811061211957fe5b60009182526020909120018054909150608060020a900460ff1615612188576040805160e560020a62461bcd02815260206004820152600f60248201527f7374696c6c20757067726164696e670000000000000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018590529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b1580156121d957600080fd5b505af11580156121ed573d6000803e3d6000fd5b505050506040513d602081101561220357600080fd5b505115612248576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b82600781111561225457fe5b815460ff91821691608860020a90910416600781111561227057fe5b60010160ff1614801561228f5750600483600781111561228c57fe5b14155b80156122a7575060078360078111156122a457fe5b11155b15156122fd576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c6964205f746f4c766c000000000000000000000000000000000000604482015290519081900360640190fd5b6004600084600781111561230d57fe5b60ff16815260208101919091526040016000205433311015612379576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b8054608060020a70ff0000000000000000000000000000000019909116176fffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff811691909102919091178255604051339184917fe925483a08461d851abfcfd476ed282a68d87b23cc45add5a8dc7f1ad7825ce991879143908084600781111561240457fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff168152602001935050505060405180910390a3505050565b3360009081526001602052604081205460ff1615156124a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6124b2866143a1565b15612507576040805160e560020a62461bcd02815260206004820152601860248201527f796f7520616c726561647920686f6c64206120746f6b656e0000000000000000604482015290519081900360640190fd5b6004600086600781111561251757fe5b60ff168152602081019190915260400160002054600160a060020a03871631101561258c576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b61259786868661419d565b90508460078111156125a557fe5b6001111580156125c1575060038560078111156125be57fe5b11155b156125ef576006805467ffffffffffffffff8082166001011667ffffffffffffffff19909116179055612659565b8460078111156125fb57fe5b6004111580156126175750600785600781111561261457fe5b11155b156126595760068054600167ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b8315610e0c5785600160a060020a0316817fe925483a08461d851abfcfd476ed282a68d87b23cc45add5a8dc7f1ad7825ce98786866040518084600781111561269e57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff168152602001935050505060405180910390a3505050505050565b60008054600160a060020a03163314612740576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612790576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a150600190565b600054600160a060020a031681565b600c805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e9a5780601f10610e6f57610100808354040283529160200191610e9a565b6000805460a060020a900460ff161561289c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b336128a683611f4a565b600160a060020a0316146128f2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b60035461290890600160a060020a0316836143bd565b6003546040805160e060020a6378bd7935028152600481018590529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b15801561295957600080fd5b505af115801561296d573d6000803e3d6000fd5b505050506040513d60c081101561298357600080fd5b5051604051909150829082907fdb9cc99dc874f9afbae71151f737e51547d3d412b52922793437d86607050c3c90600090a3600354604080517f96b5a755000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03909216916396b5a7559160248082019260009290919082900301818387803b158015610df857600080fd5b600054600160a060020a03163314612a6b576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612abb576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a038116600081815260016020818152604092839020805460ff191683179055825193845283015280517f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d9281900390910190a150565b6000806000806000806000612b2b6149a0565b612b3489613ec9565b15612ce957600580548a908110612b4757fe5b60009182526020918290206040805160a08101825291909201805467ffffffffffffffff8082168452680100000000000000008204169483019490945260ff608060020a85048116151593830193909352909290916060840191608860020a9004166007811115612bb457fe5b6007811115612bbf57fe5b81526020016000820160129054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600760008a815260200190815260200160002060009054906101000a9004600160a060020a031681606001518260400151600360009054906101000a9004600160a060020a0316600160a060020a03166337e246ad8d6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612c9f57600080fd5b505af1158015612cb3573d6000803e3d6000fd5b505050506040513d6020811015612cc957600080fd5b5051608085015185516020870151959d50939b5091995097509550935091505b50919395979092949650565b60005460a060020a900460ff1615612d45576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0382161515612d93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b33612d9d82611f4a565b600160a060020a031614612de9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b612df281611c71565b1515612e48576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e6e6f74207472616e73666572207468697320746f6b656e000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018490529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b158015612e9957600080fd5b505af1158015612ead573d6000803e3d6000fd5b505050506040513d6020811015612ec357600080fd5b505115612f08576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b611f46338383614412565b600054600160a060020a03163314612f63576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612fb3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0381166000818152600160209081526040808320805460ff1916905580519384529083019190915280517f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d9281900390910190a150565b3360009081526001602052604081205460ff161515613068576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b81600781111561307457fe5b600580548590811061308257fe5b600091825260209091200154608860020a900460ff1660078111156130a357fe5b116130f8576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c6964206c6576656c00000000000000000000000000000000000000604482015290519081900360640190fd5b600360149054906101000a900467ffffffffffffffff1660058481548110151561311e57fe5b60009182526020909120015467ffffffffffffffff72010000000000000000000000000000000000009091048116919091011642116131a7576040805160e560020a62461bcd02815260206004820152601460248201527f746f6b656e206973206f6e20636f6f6c646f776e000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018690529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b1580156131f857600080fd5b505af115801561320c573d6000803e3d6000fd5b505050506040513d602081101561322257600080fd5b50511561336b5760035461323f90600160a060020a0316846143bd565b6003546040805160e060020a6378bd7935028152600481018690529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b15801561329057600080fd5b505af11580156132a4573d6000803e3d6000fd5b505050506040513d60c08110156132ba57600080fd5b5051604051909150839082907fdb9cc99dc874f9afbae71151f737e51547d3d412b52922793437d86607050c3c90600090a3600354604080517f96b5a755000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a03909216916396b5a7559160248082019260009290919082900301818387803b15801561335257600080fd5b505af1158015613366573d6000803e3d6000fd5b505050505b600580548490811061337957fe5b600091825260209091200154608060020a900460ff161561339d5761339d836133a7565b610ff88383613ee5565b6000806133b383613ec9565b1515613409576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e206e6f742065786973740000000000000000000000000000000000604482015290519081900360640190fd5b600580548490811061341757fe5b60009182526020808320868452600790915260409092205491018054909350600160a060020a039091169150608060020a900460ff1615156134a3576040805160e560020a62461bcd02815260206004820152601060248201527f6e6f74206f6e20757067726164696e6700000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381163314806134c957503360009081526001602052604090205460ff165b151561350d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b60008254608860020a900460ff16600781111561352657fe5b141561353a57613535836145eb565b61356a565b815470ffffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff16021782555b604051600160a060020a0382169084907fddc99f00cc50e9442de66784f25bd218c8c63f4c4103b817692da0a63fb80a9690600090a3505050565b3360009081526001602052604090205460ff1615156135fc576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6003805467ffffffffffffffff90921660a060020a027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60005460a060020a900460ff161561368e576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b3361369885611f4a565b600160a060020a0316146136e4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6136ed33611039565b1515613731576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600580548590811061373f57fe5b600091825260209091200154608060020a900460ff16156137aa576040805160e560020a62461bcd02815260206004820152601660248201527f63616e63656c20757067726164696e6720666972737400000000000000000000604482015290519081900360640190fd5b6003546137c1908590600160a060020a0316613d92565b600e546137d590600163ffffffff613e6e16565b600e819055600354604080517fe4f9dd2d0000000000000000000000000000000000000000000000000000000081526004810193909352602483018790526fffffffffffffffffffffffffffffffff80871660448501528516606484015267ffffffffffffffff8085166084850152421660a48401523360c484015251600160a060020a039091169163e4f9dd2d9160e480830192600092919082900301818387803b15801561388457600080fd5b505af1158015613898573d6000803e3d6000fd5b5050600e54604080516fffffffffffffffffffffffffffffffff80891682528716602082015267ffffffffffffffff86168183015290518894509192507f50417882ac38f5bd0dd968f4b17f72ab38a7bd228eeec270f01466a5724684b4919081900360600190a350505050565b600760205260009081526040902054600160a060020a031681565b600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152606093610ebf93919290918301828280156139b05780601f10613985576101008083540402835291602001916139b0565b820191906000526020600020905b81548152906001019060200180831161399357829003601f168201915b50505050506139be84614696565b6147a4565b6000805460a060020a900460ff1615613a14576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33613a1e84611f4a565b600160a060020a031614613a6a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b613a7333611039565b1515613ab7576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600354604080517fcd5967db00000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a0385811660248301529151919092169163cd5967db91604480830192600092919082900301818387803b158015613b2557600080fd5b505af1158015613b39573d6000803e3d6000fd5b50506003546040805160e060020a6378bd7935028152600481018890529051600160a060020a0390921693506378bd7935925060248082019260c0929091908290030181600087803b158015613b8e57600080fd5b505af1158015613ba2573d6000803e3d6000fd5b505050506040513d60c0811015613bb857600080fd5b5051604051909150600160a060020a03831690849083907fc42e7df8c9dcd26c4a8b5134e17fa2481ababcb828e3b316b89b63c57b61f3b890600090a4505050565b60065468010000000000000000900467ffffffffffffffff1681565b600354600160a060020a031681565b60086020526000908152604090205481565b600054600160a060020a03163314613c87576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b600160a060020a0381161515613cd5576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600160a060020a031916600160a060020a0392909216919091179055565b60065467ffffffffffffffff1681565b600160a060020a03811660009081526008602052604081205460058054600492908110613d6957fe5b600091825260209091200154608860020a900460ff166007811115613d8a57fe5b101592915050565b60008281526009602052604081208054600160a060020a031916600160a060020a038416179055613dc283611f4a565b90508282600160a060020a031682600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600080613e1683611f4a565b905080600160a060020a031684600160a060020a03161480613e51575083600160a060020a0316613e4684610ec5565b600160a060020a0316145b949350505050565b613e6383826143bd565b610ff8838383614412565b81810182811015610ebf576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b600090815260076020526040812054600160a060020a03161190565b60008281526007602052604081205460058054600160a060020a03909216929182919086908110613f1257fe5b600091825260208220018054909350608860020a900460ff169150846007811115613f3957fe5b1415613f4d57613f48856145eb565b613fad565b81548490839071ff00000000000000000000000000000000001916608860020a836007811115613f7957fe5b021790555081546fffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff16021782555b806007811115613fb957fe5b600111158015613fd557506003816007811115613fd257fe5b11155b15614005576006805467ffffffffffffffff19811667ffffffffffffffff91821660001901909116179055614070565b80600781111561401157fe5b60041115801561402d5750600781600781111561402a57fe5b11155b15614070576006805460001967ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b83600781111561407c57fe5b6001111580156140985750600384600781111561409557fe5b11155b156140c6576006805467ffffffffffffffff8082166001011667ffffffffffffffff19909116179055614130565b8360078111156140d257fe5b6004111580156140ee575060078460078111156140eb57fe5b11155b156141305760068054600167ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b82600160a060020a0316857fb6fd4b2356bc13ccc82da8b790e9bf9bdcfd4743d32dd10aa48189ec53f6bc0083876040518083600781111561416e57fe5b60ff16815260200182600781111561418257fe5b60ff1681526020019250505060405180910390a35050505050565b60006141a76149a0565b600060a0604051908101604052804267ffffffffffffffff1681526020014267ffffffffffffffff16815260200185151581526020018660078111156141e957fe5b815267ffffffffffffffff42811660209283015260058054600181810180845560009390935285517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090920180549587015160408801511515608060020a0270ff000000000000000000000000000000001991871668010000000000000000026fffffffffffffffff0000000000000000199590971667ffffffffffffffff19909816979097179390931694909417919091169390931780835560608501519496509293909286929190829071ff00000000000000000000000000000000001916608860020a8360078111156142db57fe5b021790555060809190910151815467ffffffffffffffff90911672010000000000000000000000000000000000000279ffffffffffffffff00000000000000000000000000000000000019909116179055600160a060020a03881660008181526008602090815260408083209590940394859055848252600790528281208054600160a060020a03191683179055915192935083929091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a495945050505050565b600160a060020a03166000908152600860205260408120541190565b6000818152600960205260408082208054600160a060020a031916905551829190600160a060020a038516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908390a45050565b61441b826143a1565b15614470576040805160e560020a62461bcd02815260206004820152601860248201527f5f746f20616c726561647920686f6c64206120746f6b656e0000000000000000604482015290519081900360640190fd5b614479826148f3565b156144ce576040805160e560020a62461bcd02815260206004820152601660248201527f5f746f206d7573746e2774206120636f6e747261637400000000000000000000604482015290519081900360640190fd5b426005828154811015156144de57fe5b9060005260206000200160000160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055504260058281548110151561452157fe5b60009182526020808320909101805467ffffffffffffffff9490941672010000000000000000000000000000000000000279ffffffffffffffff0000000000000000000000000000000000001990941693909317909255600160a060020a0380861680835260088085526040808520859055868552600786528085208054948916600160a060020a03199095168517905583855294528383208590559251849391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008181526007602090815260408083208054600160a060020a03198116909155600160a060020a03168084526008909252822091909155600580548390811061463157fe5b60009182526020822001805479ffffffffffffffffffffffffffffffffffffffffffffffffffff19169055604051839190600160a060020a038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060008082818515156146df5760408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152945061479b565b8593505b83156146fa57600190920191600a840493506146e3565b859350826040519080825280601f01601f19166020018201604052801561472b578160200160208202803883390190505b5091505060001982015b831561479757815160001982019160f860020a6030600a8806010291849190811061475c57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350614735565b8194505b50505050919050565b606080606080606060008088955087945084518651016040519080825280601f01601f1916602001820160405280156147e7578160200160208202803883390190505b50935083925060009150600090505b855181101561486c57858181518110151561480d57fe5b90602001015160f860020a900460f860020a02838380600101945081518110151561483457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016147f6565b5060005b84518110156148e657848181518110151561488757fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156148ae57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101614870565b5090979650505050505050565b6000903b1190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061493c5782800160ff19823516178555614969565b82800160010185558215614969579182015b8281111561496957823582559160200191906001019061494e565b506149759291506149cf565b5090565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a0810182526000808252602082018190529181018290529060608201908152600060209091015290565b61103691905b8082111561497557600081556001016149d5560070726f746f636f6c206861732070617573656400000000000000000000000000696e76616c6964206164647265737300000000000000000000000000000000006f6e6c79206f776e65720000000000000000000000000000000000000000000063616e63656c2061756374696f6e2066697273740000000000000000000000007065726d697373696f6e2064656e6965640000000000000000000000000000006973206e6f74206120746f6b656e000000000000000000000000000000000000a165627a7a72305820614408d6b8cb8ec89a81a4a01cb1424113af0ea8b7211d7ba20233cfba32f68c0029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000000000000000000000000000000000000000000d6", + "0x036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3e85": "0x000000000000000000005cf5d6e00500000000005cf5dc1c000000005cf5d6e0", + "0x350b68b3a640ef016413f6d94e78f315e6dc089a83787970ca57d25cf78c58a9": "0x00000000000000000000000000000000000000000000000000000000000000d5" + } + } + }, + "pre": { + "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc": { + "balance": "0x94301095758da0e71b4d44", + "energy": "0x118d9e25350f0d10acc8785" + }, + "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1": { + "balance": "0x7b55e8ffcaaa3a0000", + "energy": "0x5ca1012a1ec4bd900", + "code": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309ca541b146100eb5780630ac9b108146101dd57806321abdf5c14610218578063470259c3146103f757806358a187ef146104225780635943b64f14610491578063874ec2e7146105835780638da5cb5b146105dc578063a330681914610633578063a82a3d89146107e6578063c55ac4a51461083d578063c6a023e9146109e4578063cfdc9bd614610a29578063d0d41fe114610a67578063da09c72c14610ab8578063f2fde38b14610b0f575b600080fd5b3480156100f757600080fd5b506101db6004803603606081101561010e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561015557600080fd5b82018360208201111561016757600080fd5b8035906020019184600183028401116401000000008311171561018957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b60565b005b3480156101e957600080fd5b506102166004803603602081101561020057600080fd5b8101908080359060200190929190505050611708565b005b34801561022457600080fd5b506103f5600480360361010081101561023c57600080fd5b81019080803560ff169060200190929190803590602001909291908035906020019064010000000081111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460018302840111640100000000831117156102a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561031b57600080fd5b82018360208201111561032d57600080fd5b8035906020019184600183028401116401000000008311171561034f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf3565b005b34801561040357600080fd5b5061040c6126bb565b6040518082815260200191505060405180910390f35b34801561042e57600080fd5b5061047b6004803603604081101561044557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c1565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104ca600480360360208110156104b457600080fd5b810190808035906020019092919050505061271f565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018667ffffffffffffffff1667ffffffffffffffff1681526020018567ffffffffffffffff1667ffffffffffffffff1681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b34801561058f57600080fd5b506105da600480360360408110156105a657600080fd5b81019080803567ffffffffffffffff169060200190929190803567ffffffffffffffff1690602001909291905050506127db565b005b3480156105e857600080fd5b506105f1612a03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063f57600080fd5b5061066c6004803603602081101561065657600080fd5b8101908080359060200190929190505050612a28565b6040518088600181111561067c57fe5b60ff16815260200187600281111561069057fe5b60ff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018567ffffffffffffffff1667ffffffffffffffff168152602001806020018467ffffffffffffffff1667ffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561073e578082015181840152602081019050610723565b50505050905090810190601f16801561076b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156107a4578082015181840152602081019050610789565b50505050905090810190601f1680156107d15780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3480156107f257600080fd5b506107fb612c8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109e2600480360360c081101561085357600080fd5b81019080803560ff1690602001909291908035906020019064010000000081111561087d57600080fd5b82018360208201111561088f57600080fd5b803590602001918460018302840111640100000000831117156108b157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561092857600080fd5b82018360208201111561093a57600080fd5b8035906020019184600183028401116401000000008311171561095c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb0565b005b3480156109f057600080fd5b50610a2760048036036040811015610a0757600080fd5b810190808035906020019092919080359060200190929190505050613350565b005b348015610a3557600080fd5b50610a6560048036036020811015610a4c57600080fd5b81019080803560ff169060200190929190505050613516565b005b348015610a7357600080fd5b50610ab660048036036020811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135fd565b005b348015610ac457600080fd5b50610acd613705565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1b57600080fd5b50610b5e60048036036020811015610b3257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061372b565b005b82426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16118015610bba575060006005600083815260200190815260200160002060060154115b1515610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8383600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610cfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e6e6f7420636c61696d207477696365000000000000000000000000000081525060200191505060405180910390fd5b600060056000888152602001908152602001600020905060008787604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051602081830303815290604052805190602001209050610d7b8187613952565b73ffffffffffffffffffffffffffffffffffffffff168260010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4543445341207369676e6174757265206973206e6f742076616c69642e00000081525060200191505060405180910390fd5b60006111df836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff166001811115610e7c57fe5b6001811115610e8757fe5b81526020016001820160019054906101000a900460ff166002811115610ea957fe5b6002811115610eb457fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050613a36565b905060018360090160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508083600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550428360090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506112ae818460060154613b3b90919063ffffffff16565b836006018190555060018360010160016101000a81548160ff021916908360028111156112d757fe5b02179055506000836006015414156113105760028360010160016101000a81548160ff0219169083600281111561130a57fe5b02179055505b6116ae836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff16600181111561134957fe5b600181111561135457fe5b81526020016001820160019054906101000a900460ff16600281111561137657fe5b600281111561138157fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ca5780601f1061149f576101008083540402835291602001916114ca565b820191906000526020600020905b8154815290600101906020018083116114ad57829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508983613b54565b8773ffffffffffffffffffffffffffffffffffffffff16897fc859311bc537fef52b70fbc36471c501efbf87e5a6e8fed2edf60453ddde3d5c836040518082815260200191505060405180910390a3505050505050505050565b80426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16111515156117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b816002808111156117c257fe5b6005600083815260200190815260200160002060010160019054906101000a900460ff1660028111156117f157fe5b14151515611867576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f696e76616c696420656e76656c6f70652069640000000000000000000000000081525060200191505060405180910390fd5b60006005600085815260200190815260200160002090506000816006015490506000826006018190555060028260010160016101000a81548160ff021916908360028111156118b257fe5b0217905550611c79826101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff1660018111156118f057fe5b60018111156118fb57fe5b81526020016001820160019054906101000a900460ff16600281111561191d57fe5b600281111561192857fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a715780601f10611a4657610100808354040283529160200191611a71565b820191906000526020600020905b815481529060010190602001808311611a5457829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611baf5780601f10611b8457610100808354040283529160200191611baf565b820191906000526020600020905b815481529060010190602001808311611b9257829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b54565b8160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16857f4dcb6e6a38d712e4e01ab60d4819c3cd51347a99d3c36d78f6e25aa2918e4133836040518082815260200191505060405180910390a35050505050565b6001548710151515611d6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002548711151515611de7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8467ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611e4b5750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168567ffffffffffffffff1611155b1515611ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8267ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611f235750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff1611155b1515611f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561203c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6000819050878173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561210f57600080fd5b505afa158015612123573d6000803e3d6000fd5b505050506040513d602081101561213957600080fd5b8101908080519060200190929190505050101515156121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6e6f2073756666696369656e7420616c6c6f77616e636500000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561229757600080fd5b505af11580156122ab573d6000803e3d6000fd5b5050505060016006600082825401925050819055506122c8614006565b60006122d9858b8d8c8c8c8c613d1a565b915091506006548260000181815250508382610120019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561236657fe5b021790555060408201518160010160016101000a81548160ff0219169083600281111561238f57fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061243e9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906124e89291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a360008111156126ae5781610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561269557600080fd5b505af11580156126a9573d6000803e3d6000fd5b505050505b5050505050505050505050565b60065481565b600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008060008060006005600089815260200190815260200160002090508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160090160009054906101000a900467ffffffffffffffff168260090160089054906101000a900467ffffffffffffffff16836005015484600601548560010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff169650965096509650965096505091939550919395565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561289f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8067ffffffffffffffff168267ffffffffffffffff161115151561292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b60008167ffffffffffffffff161115156129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600360106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080600360186101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060606000606060006005600089815260200190815260200160002060010160009054906101000a900460ff16600560008a815260200190815260200160002060010160019054906101000a900460ff16600560008b815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008c8152602001908152602001600020600301600560008d815260200190815260200160002060040160009054906101000a900467ffffffffffffffff16600560008e8152602001908152602001600020600801600560008f815260200190815260200160002060090160109054906101000a900467ffffffffffffffff16849450838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612bce5780601f10612ba357610100808354040283529160200191612bce565b820191906000526020600020905b815481529060010190602001808311612bb157829003601f168201915b50505050509350818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c6a5780601f10612c3f57610100808354040283529160200191612c6a565b820191906000526020600020905b815481529060010190602001808311612c4d57829003601f168201915b505050505091509650965096509650965096509650919395979092949650565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001543410151515612d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002543411151515612da4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8367ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612e085750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168467ffffffffffffffff1611155b1515612e7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8167ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612ee05750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168267ffffffffffffffff1611155b1515612f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ff9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6001600660008282540192505081905550613012614006565b600061302383348a8a8a8a8a613d1a565b91509150600654826000018181525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561307757fe5b021790555060408201518160010160016101000a81548160ff021916908360028111156130a057fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061314f9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906131f99291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a3600081111561334657600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613344573d6000803e3d6000fd5b505b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80821115151561348c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b600081111515613504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600181905550806002819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8060ff16600060146101000a81548161ffff021916908361ffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000806041855114151561396f5760009350505050613a30565b6020850151925060408501519150606085015160001a9050601b8160ff16101561399a57601b810190505b601b8160ff16141580156139b25750601c8160ff1614155b156139c35760009350505050613a30565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015613a20573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600080826101000151905060018361018001518461016001510367ffffffffffffffff16111515613a6a5780915050613b36565b60006001811115613a7757fe5b83602001516001811115613a8757fe5b1415613abe57613ab68361018001518461016001510367ffffffffffffffff1682613fb890919063ffffffff16565b915050613b36565b600060018461016001510367ffffffffffffffff1690506000606460148385811515613ae657fe5b0402811515613af157fe5b048284811515613afd57fe5b04600143034060019004811515613b1057fe5b06019050600081118015613b245750828111155b1515613b2f57600080fd5b8093505050505b919050565b6000828211151515613b4957fe5b818303905092915050565b60008114151515613bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1683610120015173ffffffffffffffffffffffffffffffffffffffff16141515613ccd5782610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613cb057600080fd5b505af1158015613cc4573d6000803e3d6000fd5b50505050613d15565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613d13573d6000803e3d6000fd5b505b505050565b613d22614006565b6000613d2c614006565b60008090508a826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f9574c69336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613e2457600080fd5b505afa158015613e38573d6000803e3d6000fd5b505050506040513d6020811015613e4e57600080fd5b81019080805190602001909291905050501515613eb857613ea06103e8613e92600060149054906101000a900461ffff1661ffff168d613fce90919063ffffffff16565b613fb890919063ffffffff16565b9050613eb5818b613b3b90919063ffffffff16565b99505b8882602001906001811115613ec957fe5b90816001811115613ed657fe5b8152505033826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878260a001819052508642018260c0019067ffffffffffffffff16908167ffffffffffffffff1681525050898260e00181815250508160e0015182610100018181525050858261014001819052508482610160019067ffffffffffffffff16908167ffffffffffffffff1681525050600082604001906002811115613f9357fe5b90816002811115613fa057fe5b81525050818193509350505097509795505050505050565b60008183811515613fc557fe5b04905092915050565b600080831415613fe15760009050614000565b8183029050818382811515613ff257fe5b04141515613ffc57fe5b8090505b92915050565b6101c060405190810160405280600081526020016000600181111561402757fe5b81526020016000600281111561403957fe5b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061413757805160ff1916838001178555614165565b82800160010185558215614165579182015b82811115614164578251825591602001919060010190614149565b5b5090506141729190614176565b5090565b61419891905b8082111561419457600081600090555060010161417c565b5090565b9056fea165627a7a7230582022c67dbc08de2a6090385a8a4ff29a53b67e0b9ba657901ff7e1251ccedfb4b90029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000000000000000000000000000000000000000000027" + } + } + }, + "post": { + "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc": { + "balance": "0x9430100aae6a9c5d334d44" + }, + "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1": { + "balance": "0x7be0b022cf34220000", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000000000000000000000000000000000000000000028", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacba": "0x0000000000000000000000000000000000000000000000000000000000000028", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbb": "0x000000000000000000001a642015b3737c5e97978f4cf2bd1a27dd5a24d00000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbc": "0x000000000000000000000000048ac268f5818b7ade95f6828ad1e769c1d51bdc", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbe": "0x000000000000000000000000000000000000000000000000000000005d172412", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacbf": "0x0000000000000000000000000000000000000000000000008ac7230489e80000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc0": "0x0000000000000000000000000000000000000000000000008ac7230489e80000", + "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc3": "0x000000000000000000000000000000000000000000000000000000000000000a" + } + } + }, + "config": { + "diffMode": true + } +} \ No newline at end of file diff --git a/tracers/testdata/revert.json b/tracers/testdata/revert.json index 0007eadaa..df0340673 100644 --- a/tracers/testdata/revert.json +++ b/tracers/testdata/revert.json @@ -1,15 +1,18 @@ { + "context": { + "blockID": "0x00ba87c69b30e8a2ead9d91c967aa42f8e285cb60372bdbac824c8d9b94d2b6d", + "blockTime": 1652275880, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", + "txOrigin": "0xaf00aaa58368d3a4381707f0d8f69c466edbf64e", + "clauseIndex": 0, + "txID": "0x35ddaaf19cf034ecc898bbcbfb3cc93b2d5bf34c284fae5f8af2429075f18a2b", + "gas": "0x984268" + }, "clause": { "to": "0x7df66c8458bf9d46ebda38ad8c189c29456c4b67", "value": "0x0", "data": "0x3c4a206f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "context": { - "blockNumber": 12224454, - "txOrigin": "0xaf00aaa58368d3a4381707f0d8f69c466edbf64e", - "clauseIndex": 0, - "txID": "0x35ddaaf19cf034ecc898bbcbfb3cc93b2d5bf34c284fae5f8af2429075f18a2b" - }, "state": { "0x53769b0ac8b16955feb09f8e2f23d904a9660a32": { "balance": "0x0", @@ -35,6 +38,10 @@ "balance": "0x0", "energy": "0x0" }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b3b431de1c215c200000", + "energy": "0x13e9502ede5e81b901109b7" + }, "0xf0218538d5d6dd9f7e8aeb93873f5ee633f823a6": { "balance": "0x0", "energy": "0x0", @@ -46,50 +53,50 @@ } }, "calls": { - "type": "CALL", "from": "0xaf00aaa58368d3a4381707f0d8f69c466edbf64e", - "to": "0x7df66c8458bf9d46ebda38ad8c189c29456c4b67", - "value": "0x0", "gas": "0x984268", "gasUsed": "0x18b1", + "to": "0x7df66c8458bf9d46ebda38ad8c189c29456c4b67", "input": "0x3c4a206f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001475736572206973206e6f206f7267616e697a6572000000000000000000000000", "error": "execution reverted", "calls": [ { - "type": "DELEGATECALL", "from": "0x7df66c8458bf9d46ebda38ad8c189c29456c4b67", - "to": "0x53769b0ac8b16955feb09f8e2f23d904a9660a32", "gas": "0x95dd4b", "gasUsed": "0x1457", + "to": "0x53769b0ac8b16955feb09f8e2f23d904a9660a32", "input": "0x3c4a206f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001475736572206973206e6f206f7267616e697a6572000000000000000000000000", "error": "execution reverted", "calls": [ { - "type": "STATICCALL", "from": "0x7df66c8458bf9d46ebda38ad8c189c29456c4b67", - "to": "0xf0218538d5d6dd9f7e8aeb93873f5ee633f823a6", "gas": "0x937b57", "gasUsed": "0x97b", + "to": "0xf0218538d5d6dd9f7e8aeb93873f5ee633f823a6", "input": "0xa5d7827e000000000000000000000000af00aaa58368d3a4381707f0d8f69c466edbf64e", "output": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001475736572206973206e6f206f7267616e697a6572000000000000000000000000", "error": "execution reverted", "calls": [ { - "type": "DELEGATECALL", "from": "0xf0218538d5d6dd9f7e8aeb93873f5ee633f823a6", - "to": "0xa96f26a25e7ee5f42f533930cce991ccaa92b784", "gas": "0x91295a", "gasUsed": "0x524", + "to": "0xa96f26a25e7ee5f42f533930cce991ccaa92b784", "input": "0xa5d7827e000000000000000000000000af00aaa58368d3a4381707f0d8f69c466edbf64e", "output": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001475736572206973206e6f206f7267616e697a6572000000000000000000000000", - "error": "execution reverted" + "error": "execution reverted", + "type": "DELEGATECALL" } - ] + ], + "type": "STATICCALL" } - ] + ], + "type": "DELEGATECALL" } - ] + ], + "value": "0x0", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/testdata/simple.json b/tracers/testdata/simple.json index 6bbe754e8..b6127fc3e 100644 --- a/tracers/testdata/simple.json +++ b/tracers/testdata/simple.json @@ -1,9 +1,12 @@ { "context": { - "blockNumber": 3168317, + "blockID": "0x0030583d5a6f4de574510cebec5a4b11d9011b93b9df12f2985b98c1cc2da28d", + "blockTime": 1561711250, + "beneficiary": "0xb4094c25f86d628fdd571afc4077f0d0196afb48", "txOrigin": "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc", "clauseIndex": 0, - "txID": "0x9de024b8b81e68afb60b110e88790b7b227e5364c87bf316eb81549199b9c9dd" + "txID": "0x9de024b8b81e68afb60b110e88790b7b227e5364c87bf316eb81549199b9c9dd", + "gas": "0x6fc38" }, "clause": { "to": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", @@ -13,11 +16,11 @@ "state": { "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc": { "balance": "0x94301095758da0e71b4d44", - "energy": "0x0" + "energy": "0x118d9e25350f0d10acc8785" }, "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1": { "balance": "0x7b55e8ffcaaa3a0000", - "energy": "0x0", + "energy": "0x5ca1012a1ec4bd900", "code": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309ca541b146100eb5780630ac9b108146101dd57806321abdf5c14610218578063470259c3146103f757806358a187ef146104225780635943b64f14610491578063874ec2e7146105835780638da5cb5b146105dc578063a330681914610633578063a82a3d89146107e6578063c55ac4a51461083d578063c6a023e9146109e4578063cfdc9bd614610a29578063d0d41fe114610a67578063da09c72c14610ab8578063f2fde38b14610b0f575b600080fd5b3480156100f757600080fd5b506101db6004803603606081101561010e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561015557600080fd5b82018360208201111561016757600080fd5b8035906020019184600183028401116401000000008311171561018957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b60565b005b3480156101e957600080fd5b506102166004803603602081101561020057600080fd5b8101908080359060200190929190505050611708565b005b34801561022457600080fd5b506103f5600480360361010081101561023c57600080fd5b81019080803560ff169060200190929190803590602001909291908035906020019064010000000081111561027057600080fd5b82018360208201111561028257600080fd5b803590602001918460018302840111640100000000831117156102a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561031b57600080fd5b82018360208201111561032d57600080fd5b8035906020019184600183028401116401000000008311171561034f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf3565b005b34801561040357600080fd5b5061040c6126bb565b6040518082815260200191505060405180910390f35b34801561042e57600080fd5b5061047b6004803603604081101561044557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c1565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104ca600480360360208110156104b457600080fd5b810190808035906020019092919050505061271f565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018667ffffffffffffffff1667ffffffffffffffff1681526020018567ffffffffffffffff1667ffffffffffffffff1681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b34801561058f57600080fd5b506105da600480360360408110156105a657600080fd5b81019080803567ffffffffffffffff169060200190929190803567ffffffffffffffff1690602001909291905050506127db565b005b3480156105e857600080fd5b506105f1612a03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063f57600080fd5b5061066c6004803603602081101561065657600080fd5b8101908080359060200190929190505050612a28565b6040518088600181111561067c57fe5b60ff16815260200187600281111561069057fe5b60ff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018567ffffffffffffffff1667ffffffffffffffff168152602001806020018467ffffffffffffffff1667ffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561073e578082015181840152602081019050610723565b50505050905090810190601f16801561076b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156107a4578082015181840152602081019050610789565b50505050905090810190601f1680156107d15780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3480156107f257600080fd5b506107fb612c8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109e2600480360360c081101561085357600080fd5b81019080803560ff1690602001909291908035906020019064010000000081111561087d57600080fd5b82018360208201111561088f57600080fd5b803590602001918460018302840111640100000000831117156108b157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff1690602001909291908035906020019064010000000081111561092857600080fd5b82018360208201111561093a57600080fd5b8035906020019184600183028401116401000000008311171561095c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803567ffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb0565b005b3480156109f057600080fd5b50610a2760048036036040811015610a0757600080fd5b810190808035906020019092919080359060200190929190505050613350565b005b348015610a3557600080fd5b50610a6560048036036020811015610a4c57600080fd5b81019080803560ff169060200190929190505050613516565b005b348015610a7357600080fd5b50610ab660048036036020811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135fd565b005b348015610ac457600080fd5b50610acd613705565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b1b57600080fd5b50610b5e60048036036020811015610b3257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061372b565b005b82426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16118015610bba575060006005600083815260200190815260200160002060060154115b1515610c2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8383600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610cfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e6e6f7420636c61696d207477696365000000000000000000000000000081525060200191505060405180910390fd5b600060056000888152602001908152602001600020905060008787604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051602081830303815290604052805190602001209050610d7b8187613952565b73ffffffffffffffffffffffffffffffffffffffff168260010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4543445341207369676e6174757265206973206e6f742076616c69642e00000081525060200191505060405180910390fd5b60006111df836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff166001811115610e7c57fe5b6001811115610e8757fe5b81526020016001820160019054906101000a900460ff166002811115610ea957fe5b6002811115610eb457fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050613a36565b905060018360090160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508083600a0160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550428360090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506112ae818460060154613b3b90919063ffffffff16565b836006018190555060018360010160016101000a81548160ff021916908360028111156112d757fe5b02179055506000836006015414156113105760028360010160016101000a81548160ff0219169083600281111561130a57fe5b02179055505b6116ae836101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff16600181111561134957fe5b600181111561135457fe5b81526020016001820160019054906101000a900460ff16600281111561137657fe5b600281111561138157fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ca5780601f1061149f576101008083540402835291602001916114ca565b820191906000526020600020905b8154815290600101906020018083116114ad57829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508983613b54565b8773ffffffffffffffffffffffffffffffffffffffff16897fc859311bc537fef52b70fbc36471c501efbf87e5a6e8fed2edf60453ddde3d5c836040518082815260200191505060405180910390a3505050505050505050565b80426005600083815260200190815260200160002060040160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16111515156117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f746f6f206c61746500000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b816002808111156117c257fe5b6005600083815260200190815260200160002060010160019054906101000a900460ff1660028111156117f157fe5b14151515611867576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f696e76616c696420656e76656c6f70652069640000000000000000000000000081525060200191505060405180910390fd5b60006005600085815260200190815260200160002090506000816006015490506000826006018190555060028260010160016101000a81548160ff021916908360028111156118b257fe5b0217905550611c79826101c06040519081016040529081600082015481526020016001820160009054906101000a900460ff1660018111156118f057fe5b60018111156118fb57fe5b81526020016001820160019054906101000a900460ff16600281111561191d57fe5b600281111561192857fe5b81526020016001820160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a715780601f10611a4657610100808354040283529160200191611a71565b820191906000526020600020905b815481529060010190602001808311611a5457829003601f168201915b505050505081526020016004820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160058201548152602001600682015481526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600882018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611baf5780601f10611b8457610100808354040283529160200191611baf565b820191906000526020600020905b815481529060010190602001808311611b9257829003601f168201915b505050505081526020016009820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016009820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250508360020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b54565b8160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16857f4dcb6e6a38d712e4e01ab60d4819c3cd51347a99d3c36d78f6e25aa2918e4133836040518082815260200191505060405180910390a35050505050565b6001548710151515611d6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002548711151515611de7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8467ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611e4b5750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168567ffffffffffffffff1611155b1515611ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8267ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015611f235750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff1611155b1515611f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561203c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6000819050878173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561210f57600080fd5b505afa158015612123573d6000803e3d6000fd5b505050506040513d602081101561213957600080fd5b8101908080519060200190929190505050101515156121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6e6f2073756666696369656e7420616c6c6f77616e636500000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561229757600080fd5b505af11580156122ab573d6000803e3d6000fd5b5050505060016006600082825401925050819055506122c8614006565b60006122d9858b8d8c8c8c8c613d1a565b915091506006548260000181815250508382610120019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561236657fe5b021790555060408201518160010160016101000a81548160ff0219169083600281111561238f57fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061243e9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906124e89291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a360008111156126ae5781610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561269557600080fd5b505af11580156126a9573d6000803e3d6000fd5b505050505b5050505050505050505050565b60065481565b600060056000848152602001908152602001600020600a0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008060008060006005600089815260200190815260200160002090508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160090160009054906101000a900467ffffffffffffffff168260090160089054906101000a900467ffffffffffffffff16836005015484600601548560010160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff169650965096509650965096505091939550919395565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561289f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8067ffffffffffffffff168267ffffffffffffffff161115151561292b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b60008167ffffffffffffffff161115156129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600360106101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080600360186101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060606000606060006005600089815260200190815260200160002060010160009054906101000a900460ff16600560008a815260200190815260200160002060010160019054906101000a900460ff16600560008b815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008c8152602001908152602001600020600301600560008d815260200190815260200160002060040160009054906101000a900467ffffffffffffffff16600560008e8152602001908152602001600020600801600560008f815260200190815260200160002060090160109054906101000a900467ffffffffffffffff16849450838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612bce5780601f10612ba357610100808354040283529160200191612bce565b820191906000526020600020905b815481529060010190602001808311612bb157829003601f168201915b50505050509350818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c6a5780601f10612c3f57610100808354040283529160200191612c6a565b820191906000526020600020905b815481529060010190602001808311612c4d57829003601f168201915b505050505091509650965096509650965096509650919395979092949650565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001543410151515612d2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f20736d616c6c0000000000000000000000000000000081525060200191505060405180910390fd5b6002543411151515612da4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f616d6f756e7420746f6f206c617267650000000000000000000000000000000081525060200191505060405180910390fd5b8367ffffffffffffffff16600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612e085750600360089054906101000a900467ffffffffffffffff1667ffffffffffffffff168467ffffffffffffffff1611155b1515612e7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c6964206475726174696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b8167ffffffffffffffff16600360109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611158015612ee05750600360189054906101000a900467ffffffffffffffff1667ffffffffffffffff168267ffffffffffffffff1611155b1515612f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420636c61696d7300000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ff9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e76616c6964207365637265745369676e657200000000000000000000000081525060200191505060405180910390fd5b6001600660008282540192505081905550613012614006565b600061302383348a8a8a8a8a613d1a565b91509150600654826000018181525050816005600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083600181111561307757fe5b021790555060408201518160010160016101000a81548160ff021916908360028111156130a057fe5b021790555060608201518160010160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600301908051906020019061314f9291906140f6565b5060c08201518160040160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060e0820151816005015561010082015181600601556101208201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160080190805190602001906131f99291906140f6565b506101608201518160090160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101808201518160090160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506101a08201518160090160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff166006547f3162dfdc09b67a736521fc30f04b8f7d2ecaa89d27441b7f350e79251747d13f60405160405180910390a3600081111561334657600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613344573d6000803e3d6000fd5b505b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80821115151561348c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5f6d696e206d7573742067726561746572207468616e205f6d6178000000000081525060200191505060405180910390fd5b600081111515613504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6d7573742067726561746572207468616e207a65726f0000000000000000000081525060200191505060405180910390fd5b81600181905550806002819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b8060ff16600060146101000a81548161ffff021916908361ffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f696e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000806041855114151561396f5760009350505050613a30565b6020850151925060408501519150606085015160001a9050601b8160ff16101561399a57601b810190505b601b8160ff16141580156139b25750601c8160ff1614155b156139c35760009350505050613a30565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015613a20573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600080826101000151905060018361018001518461016001510367ffffffffffffffff16111515613a6a5780915050613b36565b60006001811115613a7757fe5b83602001516001811115613a8757fe5b1415613abe57613ab68361018001518461016001510367ffffffffffffffff1682613fb890919063ffffffff16565b915050613b36565b600060018461016001510367ffffffffffffffff1690506000606460148385811515613ae657fe5b0402811515613af157fe5b048284811515613afd57fe5b04600143034060019004811515613b1057fe5b06019050600081118015613b245750828111155b1515613b2f57600080fd5b8093505050505b919050565b6000828211151515613b4957fe5b818303905092915050565b60008114151515613bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1683610120015173ffffffffffffffffffffffffffffffffffffffff16141515613ccd5782610120015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613cb057600080fd5b505af1158015613cc4573d6000803e3d6000fd5b50505050613d15565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613d13573d6000803e3d6000fd5b505b505050565b613d22614006565b6000613d2c614006565b60008090508a826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f9574c69336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613e2457600080fd5b505afa158015613e38573d6000803e3d6000fd5b505050506040513d6020811015613e4e57600080fd5b81019080805190602001909291905050501515613eb857613ea06103e8613e92600060149054906101000a900461ffff1661ffff168d613fce90919063ffffffff16565b613fb890919063ffffffff16565b9050613eb5818b613b3b90919063ffffffff16565b99505b8882602001906001811115613ec957fe5b90816001811115613ed657fe5b8152505033826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050878260a001819052508642018260c0019067ffffffffffffffff16908167ffffffffffffffff1681525050898260e00181815250508160e0015182610100018181525050858261014001819052508482610160019067ffffffffffffffff16908167ffffffffffffffff1681525050600082604001906002811115613f9357fe5b90816002811115613fa057fe5b81525050818193509350505097509795505050505050565b60008183811515613fc557fe5b04905092915050565b600080831415613fe15760009050614000565b8183029050818382811515613ff257fe5b04141515613ffc57fe5b8090505b92915050565b6101c060405190810160405280600081526020016000600181111561402757fe5b81526020016000600281111561403957fe5b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061413757805160ff1916838001178555614165565b82800160010185558215614165579182015b82811115614164578251825591602001919060010190614149565b5b5090506141729190614176565b5090565b61419891905b8082111561419457600081600090555060010161417c565b5090565b9056fea165627a7a7230582022c67dbc08de2a6090385a8a4ff29a53b67e0b9ba657901ff7e1251ccedfb4b90029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000000000000000000000000001550f7dca70000", @@ -37,9 +40,13 @@ "0x68ec43d1fa25ecab18a22465ce1f8255926468a3d494eb646e020d9745efacc3": "0x0000000000000000000000000000000000000000000000000000000000000000" } }, + "0xb4094c25f86d628fdd571afc4077f0d0196afb48": { + "balance": "0x14b3b431de1c215c200000", + "energy": "0x9195b22d1d4cd881d87553" + }, "0xd4dac3a95c741773f093d59256a21ed6fcc768a7": { "balance": "0x0", - "energy": "0x0", + "energy": "0xd0eb742088e04a0edd0000", "code": "0x6080604052600436106102665763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301921197811461026b57806301ffc9a7146102915780630324529c146102dc57806306fdde031461030057806307fa65f91461038a578063081812fc146103ab578063095ea7b3146103df57806313e7c9d81461040357806318160ddd1461042457806319f373611461044b57806319fa8f501461046c5780631e20363a146104b357806323b872dd146104d3578063287e8495146104fd5780632ad715731461054a5780632ed9b4fd1461055f5780633f4ba83a146105a5578063417c73a7146105ba578063454a2ab3146105db5780634838d165146105e65780634a49ac4c146106075780634d4f6ea9146106285780635c975abb1461064057806360836166146106555780636352211e1461067357806368f162931461068b5780636fbde40d146106bd57806370a08231146106de57806379512513146106ff5780637aaed8991461071a5780638456cb59146107595780638da5cb5b1461076e57806395d89b411461078357806396b5a755146107985780639870d7fe146107b0578063a574cea4146107d1578063a9059cbb14610850578063ac8a584a14610874578063b03e02c214610895578063ba2a954d146108b3578063ba6f2e65146108cb578063bae3e19e146108ed578063bfc206ed1461092d578063c87b56dd14610945578063cd5967db1461095d578063d415614814610981578063e6cbe35114610996578063e729e3a4146109ab578063f2fde38b146109cc578063f7e6e60c146109ed578063f9574c6914610a02575b600080fd5b34801561027757600080fd5b5061028f600435600160a060020a0360243516610a23565b005b34801561029d57600080fd5b506102c87bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960043516610c5a565b604080519115158252519081900360200190f35b3480156102e857600080fd5b5061028f600160a060020a0360043516602435610c8e565b34801561030c57600080fd5b50610315610e14565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039657600080fd5b506102c8600160a060020a0360043516610ea2565b3480156103b757600080fd5b506103c3600435610ec5565b60408051600160a060020a039092168252519081900360200190f35b3480156103eb57600080fd5b5061028f600160a060020a0360043516602435610ee0565b34801561040f57600080fd5b506102c8600160a060020a0360043516610ffd565b34801561043057600080fd5b50610439611012565b60408051918252519081900360200190f35b34801561045757600080fd5b506102c8600160a060020a0360043516611039565b34801561047857600080fd5b50610481611089565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b3480156104bf57600080fd5b5061028f60048035602481019101356110ad565b3480156104df57600080fd5b5061028f600160a060020a0360043581169060243516604435611109565b34801561050957600080fd5b5061051860ff6004351661137e565b6040805194855267ffffffffffffffff9384166020860152918316848301529091166060830152519081900360800190f35b34801561055657600080fd5b5061043961140c565b34801561056b57600080fd5b5061028f6004356fffffffffffffffffffffffffffffffff6024351667ffffffffffffffff60443516600160a060020a0360643516611412565b3480156105b157600080fd5b506102c8611796565b3480156105c657600080fd5b5061028f600160a060020a0360043516611895565b61028f600435611997565b3480156105f257600080fd5b506102c8600160a060020a0360043516611b5e565b34801561061357600080fd5b5061028f600160a060020a0360043516611b73565b34801561063457600080fd5b506102c8600435611c71565b34801561064c57600080fd5b506102c8611d42565b34801561066157600080fd5b5061028f60043560ff60243516611d52565b34801561067f57600080fd5b506103c3600435611f4a565b34801561069757600080fd5b506106a0611f65565b6040805167ffffffffffffffff9092168252519081900360200190f35b3480156106c957600080fd5b5061028f600160a060020a0360043516611f7c565b3480156106ea57600080fd5b50610439600160a060020a036004351661206e565b34801561070b57600080fd5b5061028f60ff60043516612090565b34801561072657600080fd5b5061028f600160a060020a036004351660ff60243516604435151567ffffffffffffffff60643581169060843516612452565b34801561076557600080fd5b506102c86126ef565b34801561077a57600080fd5b506103c36127e1565b34801561078f57600080fd5b506103156127f0565b3480156107a457600080fd5b5061028f60043561284b565b3480156107bc57600080fd5b5061028f600160a060020a0360043516612a1b565b3480156107dd57600080fd5b506107e9600435612b18565b604051600160a060020a03881681526020810187600781111561080857fe5b60ff16815295151560208701525092151560408086019190915267ffffffffffffffff92831660608601529082166080850152911660a0830152519081900360c00192509050f35b34801561085c57600080fd5b5061028f600160a060020a0360043516602435612cf5565b34801561088057600080fd5b5061028f600160a060020a0360043516612f13565b3480156108a157600080fd5b5061028f60043560ff60243516613011565b3480156108bf57600080fd5b5061028f6004356133a7565b3480156108d757600080fd5b5061028f67ffffffffffffffff600435166135a5565b3480156108f957600080fd5b5061028f6004356fffffffffffffffffffffffffffffffff6024358116906044351667ffffffffffffffff6064351661363e565b34801561093957600080fd5b506103c3600435613906565b34801561095157600080fd5b50610315600435613921565b34801561096957600080fd5b5061028f600435600160a060020a03602435166139c3565b34801561098d57600080fd5b506106a0613bfa565b3480156109a257600080fd5b506103c3613c16565b3480156109b757600080fd5b50610439600160a060020a0360043516613c25565b3480156109d857600080fd5b5061028f600160a060020a0360043516613c37565b3480156109f957600080fd5b506106a0613d30565b348015610a0e57600080fd5b506102c8600160a060020a0360043516613d40565b6000805460a060020a900460ff1615610a74576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33610a7e84611f4a565b600160a060020a031614610aca576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b610ad333611039565b1515610b17576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600354604080517f0192119700000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a03858116602483015291519190921691630192119791604480830192600092919082900301818387803b158015610b8557600080fd5b505af1158015610b99573d6000803e3d6000fd5b50506003546040805160e060020a6378bd7935028152600481018890529051600160a060020a0390921693506378bd7935925060248082019260c0929091908290030181600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b505050506040513d60c0811015610c1857600080fd5b5051604051909150600160a060020a03831690849083907f9bd63f96cf38bbd738ef415c10d8ce738b56b75bbe3b31f6bf2059d35f3a8f3a90600090a4505050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000908152600a602052604090205460ff1690565b3360009081526001602052604090205460ff161515610ce5576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b600160a060020a0382161515610d33576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60008111610d8b576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038416600482015260248101839052905165456e657267799163a9059cbb91604480830192600092919082900301818387803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b505050505050565b600b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e9a5780601f10610e6f57610100808354040283529160200191610e9a565b820191906000526020600020905b815481529060010190602001808311610e7d57829003601f168201915b505050505081565b6000610ead82611039565b8015610ebf5750610ebd82613d40565b155b92915050565b600090815260096020526040902054600160a060020a031690565b6000805460a060020a900460ff1615610f31576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b610f3a82611f4a565b9050600160a060020a038381169082161415610fa0576040805160e560020a62461bcd02815260206004820152601d60248201527f63616e6e6f7420617070726f766520796f7572206f776e20746f6b656e000000604482015290519081900360640190fd5b33600160a060020a03821614610fee576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b610ff88284613d92565b505050565b60016020526000908152604090205460ff1681565b60065467ffffffffffffffff80821668010000000000000000909204811691909101165b90565b600160a060020a03811660009081526008602052604081205460058054839290811061106157fe5b600091825260209091200154608860020a900460ff16600781111561108257fe5b1192915050565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b600054600160a060020a031633146110fd576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b610ff8600d83836148fb565b60005460a060020a900460ff1615611159576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a03821615156111a7576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b82600160a060020a03166111ba82611f4a565b600160a060020a031614611206576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6112103382613e0a565b1515611254576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b61125d81611c71565b15156112b3576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e6e6f74207472616e73666572207468697320746f6b656e000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018490529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b15801561130457600080fd5b505af1158015611318573d6000803e3d6000fd5b505050506040513d602081101561132e57600080fd5b505115611373576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b610ff8838383613e59565b60008060008061138c614979565b6004600087600781111561139c57fe5b60ff16815260208082019290925260409081016000208151608081018352815480825260019092015467ffffffffffffffff8082169583018690526801000000000000000082048116948301859052608060020a9091041660609091018190529099929850909650945092505050565b600e5481565b60005460a060020a900460ff1615611462576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b3361146c85611f4a565b600160a060020a0316146114b8576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6114c133611039565b1515611505576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600580548590811061151357fe5b600091825260209091200154608060020a900460ff161561157e576040805160e560020a62461bcd02815260206004820152601660248201527f63616e63656c20757067726164696e6720666972737400000000000000000000604482015290519081900360640190fd5b600354611595908590600160a060020a0316613d92565b600e546115a990600163ffffffff613e6e16565b600e819055600354604080517fe4f9dd2d0000000000000000000000000000000000000000000000000000000081526004810193909352602483018790526fffffffffffffffffffffffffffffffff861660448401819052606484015267ffffffffffffffff8086166084850152421660a48401523360c484015251600160a060020a039091169163e4f9dd2d9160e480830192600092919082900301818387803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b5050600e54604080516fffffffffffffffffffffffffffffffff8816808252602082015267ffffffffffffffff87168183015290518894509192507f50417882ac38f5bd0dd968f4b17f72ab38a7bd228eeec270f01466a5724684b4919081900360600190a3600354604080517fcd5967db00000000000000000000000000000000000000000000000000000000815260048101879052600160a060020a0384811660248301529151919092169163cd5967db91604480830192600092919082900301818387803b15801561173f57600080fd5b505af1158015611753573d6000803e3d6000fd5b5050600e54604051600160a060020a03851693508792507fc42e7df8c9dcd26c4a8b5134e17fa2481ababcb828e3b316b89b63c57b61f3b890600090a450505050565b60008054600160a060020a031633146117e7576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16151561184a576040805160e560020a62461bcd02815260206004820152601560248201527f6e656564732070726f746f636f6c207061757365640000000000000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a150600190565b600054600160a060020a031633146118e5576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611935576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a038116600081815260026020908152604091829020805460ff1916600190811790915582519384529083015280517f0baadf7b35b83c7d3a00874b5406dca58c60d0ff7d8c825ad02ec55484beb4559281900390910190a150565b600080548190819060a060020a900460ff16156119ec576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b6003546040805160e060020a6378bd7935028152600481018790529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b158015611a3d57600080fd5b505af1158015611a51573d6000803e3d6000fd5b505050506040513d60c0811015611a6757600080fd5b508051602091820151600354604080517f59d667a5000000000000000000000000000000000000000000000000000000008152336004820152602481018a90529051939750919550600160a060020a0316926359d667a5923492604480820193929182900301818588803b158015611ade57600080fd5b505af1158015611af2573d6000803e3d6000fd5b50505050506040513d6020811015611b0957600080fd5b505160408051338152602081018390528151929350600160a060020a03851692879287927fc2a394cb356728b3540b84dee72ea6de41f44fd94de223565258efe1549ee06f929081900390910190a450505050565b60026020526000908152604090205460ff1681565b600054600160a060020a03163314611bc3576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611c13576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0381166000818152600260209081526040808320805460ff1916905580519384529083019190915280517f0baadf7b35b83c7d3a00874b5406dca58c60d0ff7d8c825ad02ec55484beb4559281900390910190a150565b6000611c7c82613ec9565b8015611ca957506005805483908110611c9157fe5b600091825260209091200154608060020a900460ff16155b8015611cda5750600082815260076020908152604080832054600160a060020a03168352600290915290205460ff16155b8015610ebf5750600360149054906101000a900467ffffffffffffffff16600583815481101515611d0757fe5b60009182526020909120015467ffffffffffffffff720100000000000000000000000000000000000090910481169190910116421192915050565b60005460a060020a900460ff1681565b3360009081526001602052604090205460ff161515611da9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b806007811115611db557fe5b6005805484908110611dc357fe5b600091825260209091200154608860020a900460ff166007811115611de457fe5b10611e39576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c6964206c6576656c00000000000000000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018590529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b158015611e8a57600080fd5b505af1158015611e9e573d6000803e3d6000fd5b505050506040513d6020811015611eb457600080fd5b505115611ef9576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b6000600583815481101515611f0a57fe5b60009182526020909120018054911515608060020a0270ff0000000000000000000000000000000019909216919091179055611f468282613ee5565b5050565b600090815260076020526040902054600160a060020a031690565b60035460a060020a900467ffffffffffffffff1681565b600054600160a060020a03163314611fcc576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b600160a060020a038116151561201a576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60038054600160a060020a038316600160a060020a0319909116811790915560408051918252517fb69d08e828d243d599db935e2be5ce7ed7b0d2f9c9f712ff469a10a27924deb89181900360200190a150565b600061207982611039565b612084576000612087565b60015b60ff1692915050565b60008054819060a060020a900460ff16156120e3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33600090815260086020526040902054915081151561210b576121083360008061419d565b91505b600580548390811061211957fe5b60009182526020909120018054909150608060020a900460ff1615612188576040805160e560020a62461bcd02815260206004820152600f60248201527f7374696c6c20757067726164696e670000000000000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018590529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b1580156121d957600080fd5b505af11580156121ed573d6000803e3d6000fd5b505050506040513d602081101561220357600080fd5b505115612248576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b82600781111561225457fe5b815460ff91821691608860020a90910416600781111561227057fe5b60010160ff1614801561228f5750600483600781111561228c57fe5b14155b80156122a7575060078360078111156122a457fe5b11155b15156122fd576040805160e560020a62461bcd02815260206004820152600e60248201527f696e76616c6964205f746f4c766c000000000000000000000000000000000000604482015290519081900360640190fd5b6004600084600781111561230d57fe5b60ff16815260208101919091526040016000205433311015612379576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b8054608060020a70ff0000000000000000000000000000000019909116176fffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff811691909102919091178255604051339184917fe925483a08461d851abfcfd476ed282a68d87b23cc45add5a8dc7f1ad7825ce991879143908084600781111561240457fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff168152602001935050505060405180910390a3505050565b3360009081526001602052604081205460ff1615156124a9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6124b2866143a1565b15612507576040805160e560020a62461bcd02815260206004820152601860248201527f796f7520616c726561647920686f6c64206120746f6b656e0000000000000000604482015290519081900360640190fd5b6004600086600781111561251757fe5b60ff168152602081019190915260400160002054600160a060020a03871631101561258c576040805160e560020a62461bcd02815260206004820152601460248201527f696e73756666696369656e742062616c616e6365000000000000000000000000604482015290519081900360640190fd5b61259786868661419d565b90508460078111156125a557fe5b6001111580156125c1575060038560078111156125be57fe5b11155b156125ef576006805467ffffffffffffffff8082166001011667ffffffffffffffff19909116179055612659565b8460078111156125fb57fe5b6004111580156126175750600785600781111561261457fe5b11155b156126595760068054600167ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b8315610e0c5785600160a060020a0316817fe925483a08461d851abfcfd476ed282a68d87b23cc45add5a8dc7f1ad7825ce98786866040518084600781111561269e57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff168152602001935050505060405180910390a3505050505050565b60008054600160a060020a03163314612740576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612790576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a150600190565b600054600160a060020a031681565b600c805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e9a5780601f10610e6f57610100808354040283529160200191610e9a565b6000805460a060020a900460ff161561289c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b336128a683611f4a565b600160a060020a0316146128f2576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b60035461290890600160a060020a0316836143bd565b6003546040805160e060020a6378bd7935028152600481018590529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b15801561295957600080fd5b505af115801561296d573d6000803e3d6000fd5b505050506040513d60c081101561298357600080fd5b5051604051909150829082907fdb9cc99dc874f9afbae71151f737e51547d3d412b52922793437d86607050c3c90600090a3600354604080517f96b5a755000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03909216916396b5a7559160248082019260009290919082900301818387803b158015610df857600080fd5b600054600160a060020a03163314612a6b576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612abb576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a038116600081815260016020818152604092839020805460ff191683179055825193845283015280517f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d9281900390910190a150565b6000806000806000806000612b2b6149a0565b612b3489613ec9565b15612ce957600580548a908110612b4757fe5b60009182526020918290206040805160a08101825291909201805467ffffffffffffffff8082168452680100000000000000008204169483019490945260ff608060020a85048116151593830193909352909290916060840191608860020a9004166007811115612bb457fe5b6007811115612bbf57fe5b81526020016000820160129054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600760008a815260200190815260200160002060009054906101000a9004600160a060020a031681606001518260400151600360009054906101000a9004600160a060020a0316600160a060020a03166337e246ad8d6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612c9f57600080fd5b505af1158015612cb3573d6000803e3d6000fd5b505050506040513d6020811015612cc957600080fd5b5051608085015185516020870151959d50939b5091995097509550935091505b50919395979092949650565b60005460a060020a900460ff1615612d45576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0382161515612d93576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b33612d9d82611f4a565b600160a060020a031614612de9576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b612df281611c71565b1515612e48576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e6e6f74207472616e73666572207468697320746f6b656e000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018490529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b158015612e9957600080fd5b505af1158015612ead573d6000803e3d6000fd5b505050506040513d6020811015612ec357600080fd5b505115612f08576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614a4a833981519152604482015290519081900360640190fd5b611f46338383614412565b600054600160a060020a03163314612f63576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612fb3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b600160a060020a0381166000818152600160209081526040808320805460ff1916905580519384529083019190915280517f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d9281900390910190a150565b3360009081526001602052604081205460ff161515613068576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b81600781111561307457fe5b600580548590811061308257fe5b600091825260209091200154608860020a900460ff1660078111156130a357fe5b116130f8576040805160e560020a62461bcd02815260206004820152600d60248201527f696e76616c6964206c6576656c00000000000000000000000000000000000000604482015290519081900360640190fd5b600360149054906101000a900467ffffffffffffffff1660058481548110151561311e57fe5b60009182526020909120015467ffffffffffffffff72010000000000000000000000000000000000009091048116919091011642116131a7576040805160e560020a62461bcd02815260206004820152601460248201527f746f6b656e206973206f6e20636f6f6c646f776e000000000000000000000000604482015290519081900360640190fd5b6003546040805160e060020a6337e246ad028152600481018690529051600160a060020a03909216916337e246ad916024808201926020929091908290030181600087803b1580156131f857600080fd5b505af115801561320c573d6000803e3d6000fd5b505050506040513d602081101561322257600080fd5b50511561336b5760035461323f90600160a060020a0316846143bd565b6003546040805160e060020a6378bd7935028152600481018690529051600160a060020a03909216916378bd79359160248082019260c0929091908290030181600087803b15801561329057600080fd5b505af11580156132a4573d6000803e3d6000fd5b505050506040513d60c08110156132ba57600080fd5b5051604051909150839082907fdb9cc99dc874f9afbae71151f737e51547d3d412b52922793437d86607050c3c90600090a3600354604080517f96b5a755000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a03909216916396b5a7559160248082019260009290919082900301818387803b15801561335257600080fd5b505af1158015613366573d6000803e3d6000fd5b505050505b600580548490811061337957fe5b600091825260209091200154608060020a900460ff161561339d5761339d836133a7565b610ff88383613ee5565b6000806133b383613ec9565b1515613409576040805160e560020a62461bcd02815260206004820152600f60248201527f746f6b656e206e6f742065786973740000000000000000000000000000000000604482015290519081900360640190fd5b600580548490811061341757fe5b60009182526020808320868452600790915260409092205491018054909350600160a060020a039091169150608060020a900460ff1615156134a3576040805160e560020a62461bcd02815260206004820152601060248201527f6e6f74206f6e20757067726164696e6700000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381163314806134c957503360009081526001602052604090205460ff165b151561350d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b60008254608860020a900460ff16600781111561352657fe5b141561353a57613535836145eb565b61356a565b815470ffffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff16021782555b604051600160a060020a0382169084907fddc99f00cc50e9442de66784f25bd218c8c63f4c4103b817692da0a63fb80a9690600090a3505050565b3360009081526001602052604090205460ff1615156135fc576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6003805467ffffffffffffffff90921660a060020a027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60005460a060020a900460ff161561368e576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b3361369885611f4a565b600160a060020a0316146136e4576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b6136ed33611039565b1515613731576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600580548590811061373f57fe5b600091825260209091200154608060020a900460ff16156137aa576040805160e560020a62461bcd02815260206004820152601660248201527f63616e63656c20757067726164696e6720666972737400000000000000000000604482015290519081900360640190fd5b6003546137c1908590600160a060020a0316613d92565b600e546137d590600163ffffffff613e6e16565b600e819055600354604080517fe4f9dd2d0000000000000000000000000000000000000000000000000000000081526004810193909352602483018790526fffffffffffffffffffffffffffffffff80871660448501528516606484015267ffffffffffffffff8085166084850152421660a48401523360c484015251600160a060020a039091169163e4f9dd2d9160e480830192600092919082900301818387803b15801561388457600080fd5b505af1158015613898573d6000803e3d6000fd5b5050600e54604080516fffffffffffffffffffffffffffffffff80891682528716602082015267ffffffffffffffff86168183015290518894509192507f50417882ac38f5bd0dd968f4b17f72ab38a7bd228eeec270f01466a5724684b4919081900360600190a350505050565b600760205260009081526040902054600160a060020a031681565b600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152606093610ebf93919290918301828280156139b05780601f10613985576101008083540402835291602001916139b0565b820191906000526020600020905b81548152906001019060200180831161399357829003601f168201915b50505050506139be84614696565b6147a4565b6000805460a060020a900460ff1615613a14576040805160e560020a62461bcd02815260206004820152601360248201526000805160206149ea833981519152604482015290519081900360640190fd5b33613a1e84611f4a565b600160a060020a031614613a6a576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a6a833981519152604482015290519081900360640190fd5b613a7333611039565b1515613ab7576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614a8a833981519152604482015290519081900360640190fd5b600354604080517fcd5967db00000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a0385811660248301529151919092169163cd5967db91604480830192600092919082900301818387803b158015613b2557600080fd5b505af1158015613b39573d6000803e3d6000fd5b50506003546040805160e060020a6378bd7935028152600481018890529051600160a060020a0390921693506378bd7935925060248082019260c0929091908290030181600087803b158015613b8e57600080fd5b505af1158015613ba2573d6000803e3d6000fd5b505050506040513d60c0811015613bb857600080fd5b5051604051909150600160a060020a03831690849083907fc42e7df8c9dcd26c4a8b5134e17fa2481ababcb828e3b316b89b63c57b61f3b890600090a4505050565b60065468010000000000000000900467ffffffffffffffff1681565b600354600160a060020a031681565b60086020526000908152604090205481565b600054600160a060020a03163314613c87576040805160e560020a62461bcd02815260206004820152600a6024820152600080516020614a2a833981519152604482015290519081900360640190fd5b600160a060020a0381161515613cd5576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614a0a833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600160a060020a031916600160a060020a0392909216919091179055565b60065467ffffffffffffffff1681565b600160a060020a03811660009081526008602052604081205460058054600492908110613d6957fe5b600091825260209091200154608860020a900460ff166007811115613d8a57fe5b101592915050565b60008281526009602052604081208054600160a060020a031916600160a060020a038416179055613dc283611f4a565b90508282600160a060020a031682600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600080613e1683611f4a565b905080600160a060020a031684600160a060020a03161480613e51575083600160a060020a0316613e4684610ec5565b600160a060020a0316145b949350505050565b613e6383826143bd565b610ff8838383614412565b81810182811015610ebf576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b600090815260076020526040812054600160a060020a03161190565b60008281526007602052604081205460058054600160a060020a03909216929182919086908110613f1257fe5b600091825260208220018054909350608860020a900460ff169150846007811115613f3957fe5b1415613f4d57613f48856145eb565b613fad565b81548490839071ff00000000000000000000000000000000001916608860020a836007811115613f7957fe5b021790555081546fffffffffffffffff00000000000000001916680100000000000000004267ffffffffffffffff16021782555b806007811115613fb957fe5b600111158015613fd557506003816007811115613fd257fe5b11155b15614005576006805467ffffffffffffffff19811667ffffffffffffffff91821660001901909116179055614070565b80600781111561401157fe5b60041115801561402d5750600781600781111561402a57fe5b11155b15614070576006805460001967ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b83600781111561407c57fe5b6001111580156140985750600384600781111561409557fe5b11155b156140c6576006805467ffffffffffffffff8082166001011667ffffffffffffffff19909116179055614130565b8360078111156140d257fe5b6004111580156140ee575060078460078111156140eb57fe5b11155b156141305760068054600167ffffffffffffffff6801000000000000000080840482169290920116026fffffffffffffffff0000000000000000199091161790555b82600160a060020a0316857fb6fd4b2356bc13ccc82da8b790e9bf9bdcfd4743d32dd10aa48189ec53f6bc0083876040518083600781111561416e57fe5b60ff16815260200182600781111561418257fe5b60ff1681526020019250505060405180910390a35050505050565b60006141a76149a0565b600060a0604051908101604052804267ffffffffffffffff1681526020014267ffffffffffffffff16815260200185151581526020018660078111156141e957fe5b815267ffffffffffffffff42811660209283015260058054600181810180845560009390935285517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090920180549587015160408801511515608060020a0270ff000000000000000000000000000000001991871668010000000000000000026fffffffffffffffff0000000000000000199590971667ffffffffffffffff19909816979097179390931694909417919091169390931780835560608501519496509293909286929190829071ff00000000000000000000000000000000001916608860020a8360078111156142db57fe5b021790555060809190910151815467ffffffffffffffff90911672010000000000000000000000000000000000000279ffffffffffffffff00000000000000000000000000000000000019909116179055600160a060020a03881660008181526008602090815260408083209590940394859055848252600790528281208054600160a060020a03191683179055915192935083929091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a495945050505050565b600160a060020a03166000908152600860205260408120541190565b6000818152600960205260408082208054600160a060020a031916905551829190600160a060020a038516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908390a45050565b61441b826143a1565b15614470576040805160e560020a62461bcd02815260206004820152601860248201527f5f746f20616c726561647920686f6c64206120746f6b656e0000000000000000604482015290519081900360640190fd5b614479826148f3565b156144ce576040805160e560020a62461bcd02815260206004820152601660248201527f5f746f206d7573746e2774206120636f6e747261637400000000000000000000604482015290519081900360640190fd5b426005828154811015156144de57fe5b9060005260206000200160000160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055504260058281548110151561452157fe5b60009182526020808320909101805467ffffffffffffffff9490941672010000000000000000000000000000000000000279ffffffffffffffff0000000000000000000000000000000000001990941693909317909255600160a060020a0380861680835260088085526040808520859055868552600786528085208054948916600160a060020a03199095168517905583855294528383208590559251849391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008181526007602090815260408083208054600160a060020a03198116909155600160a060020a03168084526008909252822091909155600580548390811061463157fe5b60009182526020822001805479ffffffffffffffffffffffffffffffffffffffffffffffffffff19169055604051839190600160a060020a038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060008082818515156146df5760408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152945061479b565b8593505b83156146fa57600190920191600a840493506146e3565b859350826040519080825280601f01601f19166020018201604052801561472b578160200160208202803883390190505b5091505060001982015b831561479757815160001982019160f860020a6030600a8806010291849190811061475c57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350614735565b8194505b50505050919050565b606080606080606060008088955087945084518651016040519080825280601f01601f1916602001820160405280156147e7578160200160208202803883390190505b50935083925060009150600090505b855181101561486c57858181518110151561480d57fe5b90602001015160f860020a900460f860020a02838380600101945081518110151561483457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016147f6565b5060005b84518110156148e657848181518110151561488757fe5b90602001015160f860020a900460f860020a0283838060010194508151811015156148ae57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101614870565b5090979650505050505050565b6000903b1190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061493c5782800160ff19823516178555614969565b82800160010185558215614969579182015b8281111561496957823582559160200191906001019061494e565b506149759291506149cf565b5090565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160a0810182526000808252602082018190529181018290529060608201908152600060209091015290565b61103691905b8082111561497557600081556001016149d5560070726f746f636f6c206861732070617573656400000000000000000000000000696e76616c6964206164647265737300000000000000000000000000000000006f6e6c79206f776e65720000000000000000000000000000000000000000000063616e63656c2061756374696f6e2066697273740000000000000000000000007065726d697373696f6e2064656e6965640000000000000000000000000000006973206e6f74206120746f6b656e000000000000000000000000000000000000a165627a7a72305820614408d6b8cb8ec89a81a4a01cb1424113af0ea8b7211d7ba20233cfba32f68c0029", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000000000000000000000000000000000000000000d6", @@ -49,23 +56,23 @@ } }, "calls": { - "type": "CALL", "from": "0x048ac268f5818b7ade95f6828ad1e769c1d51bdc", - "to": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", - "value": "0x8ac7230489e80000", "gas": "0x6fc38", "gasUsed": "0x2fb97", + "to": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", "input": "0xc55ac4a5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000001a642015b3737c5e97978f4cf2bd1a27dd5a24d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "calls": [ { - "type": "STATICCALL", "from": "0x7d6dcd458ef0f587bf3e0f52549a96aa445224c1", - "to": "0xd4dac3a95c741773f093d59256a21ed6fcc768a7", "gas": "0x6b4e4", "gasUsed": "0x919", + "to": "0xd4dac3a95c741773f093d59256a21ed6fcc768a7", "input": "0xf9574c69000000000000000000000000048ac268f5818b7ade95f6828ad1e769c1d51bdc", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001" + "output": "0x0000000000000000000000000000000000000000000000000000000000000001", + "type": "STATICCALL" } - ] + ], + "value": "0x8ac7230489e80000", + "type": "CALL" } } \ No newline at end of file diff --git a/tracers/tracers_test.go b/tracers/tracers_test.go index 0c339babe..e53a62d79 100644 --- a/tracers/tracers_test.go +++ b/tracers/tracers_test.go @@ -28,6 +28,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/math" "github.com/stretchr/testify/assert" + "github.com/vechain/thor/block" "github.com/vechain/thor/chain" "github.com/vechain/thor/genesis" "github.com/vechain/thor/muxdb" @@ -41,9 +42,16 @@ import ( "github.com/vechain/thor/xenv" // Force-load the tracer engines to trigger registration + _ "github.com/vechain/thor/tracers/js" _ "github.com/vechain/thor/tracers/native" ) +type callLog struct { + Address common.Address `json:"address"` + Topics []common.Hash `json:"topics"` + Data hexutil.Bytes `json:"data"` +} + type callFrame struct { Type string `json:"type"` From thor.Address `json:"from"` @@ -55,6 +63,7 @@ type callFrame struct { Output hexutil.Bytes `json:"output,omitempty"` Error string `json:"error,omitempty"` Calls []callFrame `json:"calls,omitempty"` + Logs []callLog `json:"logs,omitempty"` } type clause struct { @@ -71,21 +80,36 @@ type account struct { } type context struct { - BlockNumber uint32 `json:"blockNumber"` - TxOrigin thor.Address `json:"txOrigin"` - ClauseIndex uint32 `json:"clauseIndex"` - TxID thor.Bytes32 `json:"txID"` + BlockID thor.Bytes32 `json:"blockID"` + BlockTime uint64 `json:"blockTime"` + Beneficiary thor.Address `json:"beneficiary"` + TxOrigin thor.Address `json:"txOrigin"` + ClauseIndex uint32 `json:"clauseIndex"` + TxID thor.Bytes32 `json:"txID"` + Gas math.HexOrDecimal64 `json:"gas"` } type traceTest struct { - State map[common.Address]account `json:"state,omitempty"` Clause clause `json:"clause"` Context context `json:"context"` - Calls callFrame `json:"calls,omitempty"` + State map[common.Address]account `json:"state,omitempty"` Config json.RawMessage `json:"config"` } -type prestate map[common.Address]account +type callTest struct { + traceTest + Calls callFrame `json:"calls,omitempty"` +} + +type diffState struct { + Pre map[common.Address]account `json:"pre"` + Post map[common.Address]account `json:"post"` +} + +type prestateTest struct { + traceTest + diffState +} func RunTracerTest(t *testing.T, data *traceTest, tracerName string) json.RawMessage { db := muxdb.NewMem() @@ -100,6 +124,7 @@ func RunTracerTest(t *testing.T, data *traceTest, tracerName string) json.RawMes for addr, account := range data.State { st.SetBalance(thor.Address(addr), (*big.Int)(account.Balance)) + st.SetEnergy(thor.Address(addr), (*big.Int)(account.Energy), data.Context.BlockTime) if len(account.Code) > 0 { st.SetCode(thor.Address(addr), account.Code) } @@ -109,7 +134,9 @@ func RunTracerTest(t *testing.T, data *traceTest, tracerName string) json.RawMes } rt := runtime.New(chain, st, &xenv.BlockContext{ - Number: data.Context.BlockNumber, + Number: block.Number(data.Context.BlockID), + Time: data.Context.BlockTime, + Beneficiary: data.Context.Beneficiary, }, thor.GetForkConfig(gene.Header().ID())) var tr tracers.Tracer @@ -130,17 +157,17 @@ func RunTracerTest(t *testing.T, data *traceTest, tracerName string) json.RawMes }) rt.SetVMConfig(vm.Config{Tracer: tr}) - clause := tx.NewClause(data.Clause.To).WithValue((*big.Int)(data.Calls.Value)).WithData(data.Clause.Data) - exec, _ := rt.PrepareClause(clause, data.Context.ClauseIndex, uint64(data.Calls.Gas), &xenv.TransactionContext{ + clause := tx.NewClause(data.Clause.To).WithValue((*big.Int)(data.Clause.Value)).WithData(data.Clause.Data) + exec, _ := rt.PrepareClause(clause, data.Context.ClauseIndex, uint64(data.Context.Gas), &xenv.TransactionContext{ Origin: data.Context.TxOrigin, ID: data.Context.TxID, }) - tr.CaptureClauseStart(uint64(data.Calls.Gas)) + tr.CaptureClauseStart(uint64(data.Context.Gas)) output, _, err := exec() assert.Nil(t, err) leftOverGas := output.LeftOverGas - gasUsed := uint64(data.Calls.Gas) - leftOverGas + gasUsed := uint64(data.Context.Gas) - leftOverGas refund := gasUsed / 2 if refund > output.RefundGas { refund = output.RefundGas @@ -158,7 +185,24 @@ func TestNewTracer(t *testing.T) { assert.Nil(t, err) } -func TestTracers(t *testing.T) { +func TestAllTracers(t *testing.T) { + var testData callTest + if blob, err := os.ReadFile("testdata/calls.json"); err != nil { + t.Fatalf("failed to read testcase: %v", err) + } else if err := json.Unmarshal(blob, &testData); err != nil { + t.Fatalf("failed to parse testcase: %v", err) + } + + RunTracerTest(t, &testData.traceTest, "") + RunTracerTest(t, &testData.traceTest, "4byteTracer") + RunTracerTest(t, &testData.traceTest, "unigram") + RunTracerTest(t, &testData.traceTest, "bigram") + RunTracerTest(t, &testData.traceTest, "trigram") + RunTracerTest(t, &testData.traceTest, "evmdis") + RunTracerTest(t, &testData.traceTest, "opcount") +} + +func TestCallTracers(t *testing.T) { files, err := os.ReadDir("testdata") if err != nil { t.Fatal(err) @@ -169,7 +213,7 @@ func TestTracers(t *testing.T) { } f := file t.Run(strings.TrimSuffix(f.Name(), ".json"), func(t *testing.T) { - var testData traceTest + var testData callTest if blob, err := os.ReadFile(filepath.Join("testdata", file.Name())); err != nil { t.Fatalf("failed to read testcase: %v", err) @@ -177,23 +221,207 @@ func TestTracers(t *testing.T) { t.Fatalf("failed to parse testcase: %v", err) } - result := RunTracerTest(t, &testData, "callTracer") + result := RunTracerTest(t, &testData.traceTest, "callTracer") var got callFrame if err := json.Unmarshal(result, &got); err != nil { t.Fatal(err) } assert.Equal(t, testData.Calls, got) - result = RunTracerTest(t, &testData, "prestateTracer") + result = RunTracerTest(t, &testData.traceTest, "prestateTracer") + type prestate map[common.Address]account var pre prestate if err := json.Unmarshal(result, &pre); err != nil { t.Fatal(err) } assert.Equal(t, prestate(testData.State), pre) + }) - RunTracerTest(t, &testData, "") - RunTracerTest(t, &testData, "4byteTracer") + } +} + +func TestPreStateTracers(t *testing.T) { + files, err := os.ReadDir("testdata/prestate_diff") + if err != nil { + t.Fatal(err) + } + for _, file := range files { + if !strings.HasSuffix(file.Name(), ".json") { + continue + } + f := file + t.Run(strings.TrimSuffix(f.Name(), ".json"), func(t *testing.T) { + var testData prestateTest + + if blob, err := os.ReadFile(filepath.Join("testdata/prestate_diff", file.Name())); err != nil { + t.Fatalf("failed to read testcase: %v", err) + } else if err := json.Unmarshal(blob, &testData); err != nil { + t.Fatalf("failed to parse testcase: %v", err) + } + + result := RunTracerTest(t, &testData.traceTest, "prestateTracer") + var got diffState + if err := json.Unmarshal(result, &got); err != nil { + t.Fatal(err) + } + assert.Equal(t, testData.diffState, got) }) } } + +func TestInternals(t *testing.T) { + var ( + to = thor.MustParseAddress("0x00000000000000000000000000000000deadbeef") + origin = thor.MustParseAddress("0x000000000000000000000000000000000000feed") + ) + mkTracer := func(name string, cfg json.RawMessage) tracers.Tracer { + tr, err := tracers.DefaultDirectory.New(name, cfg, false) + if err != nil { + t.Fatalf("failed to create call tracer: %v", err) + } + return tr + } + + for _, tc := range []struct { + name string + code []byte + tracer tracers.Tracer + want string + }{ + { + // TestZeroValueToNotExitCall tests the calltracer(s) on the following: + // Tx to A, A calls B with zero value. B does not already exist. + // Expected: that enter/exit is invoked and the inner call is shown in the result + name: "ZeroValueToNotExitCall", + code: []byte{ + byte(vm.PUSH1), 0x0, byte(vm.DUP1), byte(vm.DUP1), byte(vm.DUP1), // in and outs zero + byte(vm.DUP1), byte(vm.PUSH1), 0xff, byte(vm.GAS), // value=0,address=0xff, gas=GAS + byte(vm.CALL), + }, + tracer: mkTracer("callTracer", nil), + want: `{"from":"0x000000000000000000000000000000000000feed","gas":"0x13880","gasUsed":"0x54d8","to":"0x00000000000000000000000000000000deadbeef","input":"0x","calls":[{"from":"0x00000000000000000000000000000000deadbeef","gas":"0xe01a","gasUsed":"0x0","to":"0x00000000000000000000000000000000000000ff","input":"0x","value":"0x0","type":"CALL"}],"value":"0x0","type":"CALL"}`, + }, + { + name: "Stack depletion in LOG0", + code: []byte{byte(vm.LOG3)}, + tracer: mkTracer("callTracer", json.RawMessage(`{ "withLog": true }`)), + want: `{"from":"0x000000000000000000000000000000000000feed","gas":"0x13880","gasUsed":"0x13880","to":"0x00000000000000000000000000000000deadbeef","input":"0x","error":"stack underflow (0 \u003c=\u003e 5)","value":"0x0","type":"CALL"}`, + }, + { + name: "Mem expansion in LOG0", + code: []byte{ + byte(vm.PUSH1), 0x1, + byte(vm.PUSH1), 0x0, + byte(vm.MSTORE), + byte(vm.PUSH1), 0xff, + byte(vm.PUSH1), 0x0, + byte(vm.LOG0), + }, + tracer: mkTracer("callTracer", json.RawMessage(`{ "withLog": true }`)), + want: `{"from":"0x000000000000000000000000000000000000feed","gas":"0x13880","gasUsed":"0x5b9e","to":"0x00000000000000000000000000000000deadbeef","input":"0x","logs":[{"address":"0x00000000000000000000000000000000deadbeef","topics":[],"data":"0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}],"value":"0x0","type":"CALL"}`, + }, + { + // Leads to OOM on the prestate tracer + name: "Prestate-tracer - CREATE2 OOM", + code: []byte{ + byte(vm.PUSH1), 0x1, + byte(vm.PUSH1), 0x0, + byte(vm.MSTORE), + byte(vm.PUSH1), 0x1, + byte(vm.PUSH5), 0xff, 0xff, 0xff, 0xff, 0xff, + byte(vm.PUSH1), 0x1, + byte(vm.PUSH1), 0x0, + byte(vm.CREATE2), + byte(vm.PUSH1), 0xff, + byte(vm.PUSH1), 0x0, + byte(vm.LOG0), + }, + tracer: mkTracer("prestateTracer", nil), + // Here adds energy to prestate test cases, in ethereum prestate tracer adds tx fee back to origin's balance, we don't(clause level) + want: `{"0x0000000000000000000000000000000000000000":{"balance":"0x0","energy":"0x0"},"0x000000000000000000000000000000000000feed":{"balance":"0x1c6bf52634000","energy":"0x0"},"0x00000000000000000000000000000000deadbeef":{"balance":"0x0","energy":"0x0","code":"0x6001600052600164ffffffffff60016000f560ff6000a0"}}`, + }, + { + // CREATE2 which requires padding memory by prestate tracer + name: "Prestate-tracer - CREATE2 Memory padding", + code: []byte{ + byte(vm.PUSH1), 0x1, + byte(vm.PUSH1), 0x0, + byte(vm.MSTORE), + byte(vm.PUSH1), 0x1, + byte(vm.PUSH1), 0xff, + byte(vm.PUSH1), 0x1, + byte(vm.PUSH1), 0x0, + byte(vm.CREATE2), + byte(vm.PUSH1), 0xff, + byte(vm.PUSH1), 0x0, + byte(vm.LOG0), + }, + tracer: mkTracer("prestateTracer", nil), + // Here adds energy to prestate test cases, in ethereum prestate tracer adds tx fee back to origin's balance, we don't(clause level) + want: `{"0x0000000000000000000000000000000000000000":{"balance":"0x0","energy":"0x0"},"0x000000000000000000000000000000000000feed":{"balance":"0x1c6bf52634000","energy":"0x0"},"0x00000000000000000000000000000000deadbeef":{"balance":"0x0","energy":"0x0","code":"0x6001600052600160ff60016000f560ff6000a0"},"0x91ff9a805d36f54e3e272e230f3e3f5c1b330804":{"balance":"0x0","energy":"0x0"}}`, + }, + } { + t.Run(tc.name, func(t *testing.T) { + db := muxdb.NewMem() + gene, _, _, err := genesis.NewTestnet().Build(state.NewStater(db)) + if err != nil { + t.Fatal(err) + } + + repo, _ := chain.NewRepository(db, gene) + st := state.New(db, gene.Header().StateRoot(), 0, 0, 0) + chain := repo.NewChain(gene.Header().ID()) + + st.SetCode(to, tc.code) + st.SetBalance(origin, big.NewInt(500000000000000)) + + rt := runtime.New(chain, st, &xenv.BlockContext{ + Number: 8000000, + Time: 5, + Beneficiary: thor.Address{}, + GasLimit: 6000000, + }, thor.GetForkConfig(gene.Header().ID())) + + tr := tc.tracer + + tr.SetContext(&tracers.Context{ + BlockTime: rt.Context().Time, + State: rt.State(), + }) + rt.SetVMConfig(vm.Config{Tracer: tr}) + + gas := uint64(80000) + clause := tx.NewClause(&to).WithValue((*big.Int)(big.NewInt(0))) + // to remain the same with testcases from ethereum, here deduct intrinsic gas since ethereum captures gas including intrinsic and we don't + // we are capturing at clause level + exec, _ := rt.PrepareClause(clause, 0, gas-21000, &xenv.TransactionContext{ + Origin: origin, + GasPrice: big.NewInt(0), + }) + + tr.CaptureClauseStart(gas) + output, _, err := exec() + if err != nil { + t.Fatalf("test %v: failed to execute: %v", tc.name, err) + } + + leftOverGas := output.LeftOverGas + gasUsed := gas - leftOverGas + refund := gasUsed / 2 + if refund > output.RefundGas { + refund = output.RefundGas + } + leftOverGas += refund + + tr.CaptureClauseEnd(leftOverGas) + res, err := tc.tracer.GetResult() + if err != nil { + t.Fatalf("test %v: failed to retrieve trace result: %v", tc.name, err) + } + if string(res) != tc.want { + t.Errorf("test %v: trace mismatch\n have: %v\n want: %v\n", tc.name, string(res), tc.want) + } + }) + } +}