Commit 6242cf30 authored by Boyuan-Chen's avatar Boyuan-Chen Committed by GitHub

Merge branch 'develop' into support-external-client-in-op-geth-tests

parents 1be5226f 99d0ef1b
...@@ -8,8 +8,8 @@ require ( ...@@ -8,8 +8,8 @@ require (
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3 github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20230920213331-413695cf7906 github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20230921190252-f29074de9e36
github.com/ethereum/go-ethereum v1.12.0 github.com/ethereum/go-ethereum v1.12.2
github.com/fsnotify/fsnotify v1.6.0 github.com/fsnotify/fsnotify v1.6.0
github.com/go-chi/chi/v5 v5.0.10 github.com/go-chi/chi/v5 v5.0.10
github.com/go-chi/docgen v1.2.0 github.com/go-chi/docgen v1.2.0
...@@ -68,8 +68,8 @@ require ( ...@@ -68,8 +68,8 @@ require (
github.com/containerd/cgroups v1.1.0 // indirect github.com/containerd/cgroups v1.1.0 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/crate-crypto/go-ipa v0.0.0-20220523130400-f11357ae11c7 // indirect github.com/crate-crypto/go-ipa v0.0.0-20230601170251-1830d0757c80 // indirect
github.com/crate-crypto/go-kzg-4844 v0.2.0 // indirect github.com/crate-crypto/go-kzg-4844 v0.3.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
github.com/deckarep/golang-set/v2 v2.1.0 // indirect github.com/deckarep/golang-set/v2 v2.1.0 // indirect
...@@ -78,16 +78,16 @@ require ( ...@@ -78,16 +78,16 @@ require (
github.com/dlclark/regexp2 v1.7.0 // indirect github.com/dlclark/regexp2 v1.7.0 // indirect
github.com/docker/docker v20.10.24+incompatible // indirect github.com/docker/docker v20.10.24+incompatible // indirect
github.com/docker/go-units v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect
github.com/dop251/goja v0.0.0-20230122112309-96b1610dd4f7 // indirect github.com/dop251/goja v0.0.0-20230605162241-28ee0ee714f3 // indirect
github.com/elastic/gosigar v0.14.2 // indirect github.com/elastic/gosigar v0.14.2 // indirect
github.com/ethereum/c-kzg-4844 v0.2.0 // indirect github.com/ethereum/c-kzg-4844 v0.3.1 // indirect
github.com/fatih/color v1.7.0 // indirect github.com/fatih/color v1.7.0 // indirect
github.com/felixge/fgprof v0.9.3 // indirect github.com/felixge/fgprof v0.9.3 // indirect
github.com/fjl/memsize v0.0.1 // indirect github.com/fjl/memsize v0.0.1 // indirect
github.com/flynn/noise v1.0.0 // indirect github.com/flynn/noise v1.0.0 // indirect
github.com/francoispqt/gojay v1.2.13 // indirect github.com/francoispqt/gojay v1.2.13 // indirect
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect
github.com/gballet/go-verkle v0.0.0-20220902153445-097bd83b7732 // indirect github.com/gballet/go-verkle v0.0.0-20230607174250-df487255f46b // indirect
github.com/getsentry/sentry-go v0.18.0 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
...@@ -106,6 +106,7 @@ require ( ...@@ -106,6 +106,7 @@ require (
github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-bexpr v0.1.11 // indirect github.com/hashicorp/go-bexpr v0.1.11 // indirect
github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect
github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 // indirect
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
github.com/huin/goupnp v1.2.0 // indirect github.com/huin/goupnp v1.2.0 // indirect
github.com/influxdata/influxdb-client-go/v2 v2.4.0 // indirect github.com/influxdata/influxdb-client-go/v2 v2.4.0 // indirect
...@@ -122,7 +123,7 @@ require ( ...@@ -122,7 +123,7 @@ require (
github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e // indirect github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e // indirect
github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect github.com/jinzhu/now v1.1.5 // indirect
github.com/karalabe/usb v0.0.2 // indirect github.com/karalabe/usb v0.0.3-0.20230711191512-61db3e06439c // indirect
github.com/klauspost/compress v1.16.7 // indirect github.com/klauspost/compress v1.16.7 // indirect
github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect
github.com/koron/go-ssdp v0.0.4 // indirect github.com/koron/go-ssdp v0.0.4 // indirect
...@@ -189,6 +190,7 @@ require ( ...@@ -189,6 +190,7 @@ require (
github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect
go.uber.org/automaxprocs v1.5.2 // indirect
go.uber.org/dig v1.17.0 // indirect go.uber.org/dig v1.17.0 // indirect
go.uber.org/fx v1.20.0 // indirect go.uber.org/fx v1.20.0 // indirect
go.uber.org/multierr v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect
...@@ -207,6 +209,6 @@ require ( ...@@ -207,6 +209,6 @@ require (
rsc.io/tmplfunc v0.0.3 // indirect rsc.io/tmplfunc v0.0.3 // indirect
) )
replace github.com/ethereum/go-ethereum v1.12.0 => github.com/ethereum-optimism/op-geth v1.101200.2-rc.1.0.20230914224024-b84ba11915a0 replace github.com/ethereum/go-ethereum v1.12.2 => github.com/ethereum-optimism/op-geth v1.101200.2-rc.1.0.20230922185314-7997a6fed17c
//replace github.com/ethereum/go-ethereum v1.12.0 => ../go-ethereum //replace github.com/ethereum/go-ethereum v1.12.2 => ../go-ethereum
...@@ -72,8 +72,11 @@ github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL ...@@ -72,8 +72,11 @@ github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
...@@ -111,10 +114,10 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma ...@@ -111,10 +114,10 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/crate-crypto/go-ipa v0.0.0-20220523130400-f11357ae11c7 h1:6IrxszG5G+O7zhtkWxq6+unVvnrm1fqV2Pe+T95DUzw= github.com/crate-crypto/go-ipa v0.0.0-20230601170251-1830d0757c80 h1:DuBDHVjgGMPki7bAyh91+3cF1Vh34sAEdH8JQgbc2R0=
github.com/crate-crypto/go-ipa v0.0.0-20220523130400-f11357ae11c7/go.mod h1:gFnFS95y8HstDP6P9pPwzrxOOC5TRDkwbM+ao15ChAI= github.com/crate-crypto/go-ipa v0.0.0-20230601170251-1830d0757c80/go.mod h1:gzbVz57IDJgQ9rLQwfSk696JGWof8ftznEL9GoAv3NI=
github.com/crate-crypto/go-kzg-4844 v0.2.0 h1:UVuHOE+5tIWrim4zf/Xaa43+MIsDCPyW76QhUpiMGj4= github.com/crate-crypto/go-kzg-4844 v0.3.0 h1:UBlWE0CgyFqqzTI+IFyCzA7A3Zw4iip6uzRv5NIXG0A=
github.com/crate-crypto/go-kzg-4844 v0.2.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4= github.com/crate-crypto/go-kzg-4844 v0.3.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
...@@ -152,8 +155,8 @@ github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD ...@@ -152,8 +155,8 @@ github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk=
github.com/dop251/goja v0.0.0-20230122112309-96b1610dd4f7 h1:kgvzE5wLsLa7XKfV85VZl40QXaMCaeFtHpPwJ8fhotY= github.com/dop251/goja v0.0.0-20230605162241-28ee0ee714f3 h1:+3HCtB74++ClLy8GgjUQYeC8R4ILzVcIe8+5edAJJnE=
github.com/dop251/goja v0.0.0-20230122112309-96b1610dd4f7/go.mod h1:yRkwfj0CBpOGre+TwBsqPV0IH0Pk73e4PXJOeNDboGs= github.com/dop251/goja v0.0.0-20230605162241-28ee0ee714f3/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4=
github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y=
github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
...@@ -169,12 +172,12 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 ...@@ -169,12 +172,12 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw=
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3 h1:RWHKLhCrQThMfch+QJ1Z8veEq5ZO3DfIhZ7xgRP9WTc= github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3 h1:RWHKLhCrQThMfch+QJ1Z8veEq5ZO3DfIhZ7xgRP9WTc=
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3/go.mod h1:QziizLAiF0KqyLdNJYD7O5cpDlaFMNZzlxYNcWsJUxs= github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.3/go.mod h1:QziizLAiF0KqyLdNJYD7O5cpDlaFMNZzlxYNcWsJUxs=
github.com/ethereum-optimism/op-geth v1.101200.2-rc.1.0.20230914224024-b84ba11915a0 h1:Qcu7OVMbKvbu7aaDC31OY0JCqFIr2N+/SGdBTnxukCs= github.com/ethereum-optimism/op-geth v1.101200.2-rc.1.0.20230922185314-7997a6fed17c h1:EfBySl/7PCIeDFnEt2TCMXSPjg9Fe60peHCY5YkNzDM=
github.com/ethereum-optimism/op-geth v1.101200.2-rc.1.0.20230914224024-b84ba11915a0/go.mod h1:gRnPb21PoKcHm3kHqj9BQlQkwmhOGUvQoGEbC7z852Q= github.com/ethereum-optimism/op-geth v1.101200.2-rc.1.0.20230922185314-7997a6fed17c/go.mod h1:TATnHMajC8fpMPagb5Np97yt6kvke7if2An4PeIlhps=
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20230920213331-413695cf7906 h1:dATqgMywOwG/aN6UlEn+nCHnxcK6DlOn9xElNGBO/kY= github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20230921190252-f29074de9e36 h1:HGDz8DcAkHvZy+iPnBa8yr4MdLqKpb7oAks01P08JOg=
github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20230920213331-413695cf7906/go.mod h1:q0u2UbyOr1q/y94AgMOj/V8b1KO05ZwILTR/qKt7Auo= github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20230921190252-f29074de9e36/go.mod h1:q0u2UbyOr1q/y94AgMOj/V8b1KO05ZwILTR/qKt7Auo=
github.com/ethereum/c-kzg-4844 v0.2.0 h1:+cUvymlnoDDQgMInp25Bo3OmLajmmY8mLJ/tLjqd77Q= github.com/ethereum/c-kzg-4844 v0.3.1 h1:sR65+68+WdnMKxseNWxSJuAv2tsUrihTpVBTfM/U5Zg=
github.com/ethereum/c-kzg-4844 v0.2.0/go.mod h1:WI2Nd82DMZAAZI1wV2neKGost9EKjvbpQR9OqE5Qqa8= github.com/ethereum/c-kzg-4844 v0.3.1/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8=
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
...@@ -196,8 +199,8 @@ github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbS ...@@ -196,8 +199,8 @@ github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbS
github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc=
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays=
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww=
github.com/gballet/go-verkle v0.0.0-20220902153445-097bd83b7732 h1:AB7YjNrzlVHsYz06zCULVV2zYCEft82P86dSmtwxKL0= github.com/gballet/go-verkle v0.0.0-20230607174250-df487255f46b h1:vMT47RYsrftsHSTQhqXwC3BYflo38OLC3Y4LtXtLyU0=
github.com/gballet/go-verkle v0.0.0-20220902153445-097bd83b7732/go.mod h1:o/XfIXWi4/GqbQirfRm5uTbXMG5NpqxkxblnbZ+QM9I= github.com/gballet/go-verkle v0.0.0-20230607174250-df487255f46b/go.mod h1:CDncRYVRSDqwakm282WEkjfaAj1hxU/v5RXxk5nXOiI=
github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c=
...@@ -303,6 +306,7 @@ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXi ...@@ -303,6 +306,7 @@ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXi
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg=
github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo= github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo=
github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
...@@ -335,6 +339,8 @@ github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2 ...@@ -335,6 +339,8 @@ github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2
github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4= github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4=
github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZKHF9GxxWKDJGj8I0IqOUol//sw=
github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc=
github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao=
github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA=
github.com/holiman/uint256 v1.2.3 h1:K8UWO1HUJpRMXBxbmaY1Y8IAMZC/RsKB+ArEnnK4l5o= github.com/holiman/uint256 v1.2.3 h1:K8UWO1HUJpRMXBxbmaY1Y8IAMZC/RsKB+ArEnnK4l5o=
...@@ -345,6 +351,7 @@ github.com/huin/goupnp v1.2.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFck ...@@ -345,6 +351,7 @@ github.com/huin/goupnp v1.2.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFck
github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/influxdata/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k= github.com/influxdata/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k=
...@@ -444,8 +451,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV ...@@ -444,8 +451,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/karalabe/usb v0.0.2 h1:M6QQBNxF+CQ8OFvxrT90BA0qBOXymndZnk5q235mFc4= github.com/karalabe/usb v0.0.3-0.20230711191512-61db3e06439c h1:AqsttAyEyIEsNz5WLRwuRwjiT5CMDUfLk6cFJDVPebs=
github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/karalabe/usb v0.0.3-0.20230711191512-61db3e06439c/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU=
github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8=
github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE=
github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE=
...@@ -666,6 +673,8 @@ github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= ...@@ -666,6 +673,8 @@ github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA=
github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo= github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
...@@ -812,6 +821,7 @@ github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZ ...@@ -812,6 +821,7 @@ github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZ
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
...@@ -823,6 +833,8 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= ...@@ -823,6 +833,8 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/automaxprocs v1.5.2 h1:2LxUOGiR3O6tw8ui5sZa2LAaHnsviZdVOUZw4fvbnME=
go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI=
go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU=
go.uber.org/fx v1.20.0 h1:ZMC/pnRvhsthOZh9MZjMq5U8Or3mA9zBSPaLnzs3ihQ= go.uber.org/fx v1.20.0 h1:ZMC/pnRvhsthOZh9MZjMq5U8Or3mA9zBSPaLnzs3ihQ=
...@@ -884,6 +896,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB ...@@ -884,6 +896,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
...@@ -916,6 +929,7 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT ...@@ -916,6 +929,7 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT
golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
...@@ -931,6 +945,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ ...@@ -931,6 +945,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
...@@ -978,10 +994,12 @@ golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBc ...@@ -978,10 +994,12 @@ golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220405052023-b1e9470b6e64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220405052023-b1e9470b6e64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
...@@ -1001,6 +1019,7 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= ...@@ -1001,6 +1019,7 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
...@@ -1035,6 +1054,7 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f ...@@ -1035,6 +1054,7 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
......
...@@ -38,7 +38,10 @@ type DB struct { ...@@ -38,7 +38,10 @@ type DB struct {
func NewDB(dbConfig config.DBConfig) (*DB, error) { func NewDB(dbConfig config.DBConfig) (*DB, error) {
retryStrategy := &retry.ExponentialStrategy{Min: 1000, Max: 20_000, MaxJitter: 250} retryStrategy := &retry.ExponentialStrategy{Min: 1000, Max: 20_000, MaxJitter: 250}
dsn := fmt.Sprintf("host=%s port=%d dbname=%s sslmode=disable", dbConfig.Host, dbConfig.Port, dbConfig.Name) dsn := fmt.Sprintf("host=%s dbname=%s sslmode=disable", dbConfig.Host, dbConfig.Name)
if dbConfig.Port != 0 {
dsn += fmt.Sprintf(" port=%d", dbConfig.Port)
}
if dbConfig.User != "" { if dbConfig.User != "" {
dsn += fmt.Sprintf(" user=%s", dbConfig.User) dsn += fmt.Sprintf(" user=%s", dbConfig.User)
} }
......
...@@ -31,7 +31,7 @@ var ( ...@@ -31,7 +31,7 @@ var (
// DisputeGameFactoryMetaData contains all meta data concerning the DisputeGameFactory contract. // DisputeGameFactoryMetaData contains all meta data concerning the DisputeGameFactory contract.
var DisputeGameFactoryMetaData = &bind.MetaData{ var DisputeGameFactoryMetaData = &bind.MetaData{
ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid\",\"type\":\"bytes32\"}],\"name\":\"GameAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint8\"}],\"name\":\"NoImplementation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputeProxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"DisputeGameCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint8\"}],\"name\":\"ImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"contractIDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"gameAtIndex\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"},{\"internalType\":\"contractIDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gameCount_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"gameImpls\",\"outputs\":[{\"internalType\":\"contractIDisputeGame\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"games\",\"outputs\":[{\"internalType\":\"contractIDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"getGameUUID\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"contractIDisputeGame\",\"name\":\"_impl\",\"type\":\"address\"}],\"name\":\"setImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid\",\"type\":\"bytes32\"}],\"name\":\"GameAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint8\"}],\"name\":\"NoImplementation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"disputeProxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"DisputeGameCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"GameType\",\"name\":\"gameType\",\"type\":\"uint8\"}],\"name\":\"ImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"contractIDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"gameAtIndex\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"},{\"internalType\":\"contractIDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gameCount_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"gameImpls\",\"outputs\":[{\"internalType\":\"contractIDisputeGame\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"games\",\"outputs\":[{\"internalType\":\"contractIDisputeGame\",\"name\":\"proxy_\",\"type\":\"address\"},{\"internalType\":\"Timestamp\",\"name\":\"timestamp_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_rootClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"getGameUUID\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"uuid_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"contractIDisputeGame\",\"name\":\"_impl\",\"type\":\"address\"}],\"name\":\"setImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
Bin: "0x60e06040523480156200001157600080fd5b506000608081905260a0819052600560c0526200002e9062000034565b620002a2565b600054610100900460ff1615808015620000555750600054600160ff909116105b8062000085575062000072306200017260201b620009ed1760201c565b15801562000085575060005460ff166001145b620000ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000112576000805461ff0019166101001790555b6200011c62000181565b6200012782620001e9565b80156200016e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001dd5760405162461bcd60e51b815260206004820152602b60248201526000805160206200161e83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b620001e76200023b565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620002975760405162461bcd60e51b815260206004820152602b60248201526000805160206200161e83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b620001e733620001e9565b60805160a05160c05161134c620002d260003960006106520152600061062901526000610600015261134c6000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063c4d66de81161005b578063c4d66de8146102b4578063dfa162d3146102c7578063f2fde38b146102fd57600080fd5b80638da5cb5b146101fd578063bb8aa1fc1461021b578063c49d52711461026c57600080fd5b80634d1975b4116100b25780634d1975b4146101d857806354fd4d50146101e0578063715018a6146101f557600080fd5b806326daafbe146100d95780633142e55e1461018b57806345583b7a146101c3575b600080fd5b6101786100e7366004610ef1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0810180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0830180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08086018051988652968352606087529451609f0190941683209190925291905291905290565b6040519081526020015b60405180910390f35b61019e610199366004610fda565b610310565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610182565b6101d66101d1366004611083565b610572565b005b606754610178565b6101e86105f9565b60405161018291906110ea565b6101d661069c565b60335473ffffffffffffffffffffffffffffffffffffffff1661019e565b61022e61022936600461113b565b6106b0565b6040805160ff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610182565b61027f61027a366004610fda565b610712565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610182565b6101d66102c2366004611154565b61079a565b61019e6102d5366004611178565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101d661030b366004611154565b610936565b60ff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff168061037a576040517f44265d6f00000000000000000000000000000000000000000000000000000000815260ff871660048201526024015b60405180910390fd5b6103dd85858560405160200161039293929190611193565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff831690610a09565b91508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561042757600080fd5b505af115801561043b573d6000803e3d6000fd5b505050506000610482878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b600081815260666020526040902054909150156104ce576040517f014f6fe500000000000000000000000000000000000000000000000000000000815260048101829052602401610371565b60004260b81b60f889901b178417600083815260666020526040808220839055606780546001810182559083527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0183905551919250889160ff8b169173ffffffffffffffffffffffffffffffffffffffff8816917ffad0599ff449d8d9685eadecca8cb9e00924c5fd8367c1c09469824939e1ffec9190a4505050949350505050565b61057a610b3d565b60ff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917f623713f72f6e427a8044bb8b3bd6834357cf285decbaa21bcc73c1d0632c4d8491a35050565b60606106247f0000000000000000000000000000000000000000000000000000000000000000610bbe565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610bbe565b6106767f0000000000000000000000000000000000000000000000000000000000000000610bbe565b604051602001610688939291906111ad565b604051602081830303815290604052905090565b6106a4610b3d565b6106ae6000610cfb565b565b6000806000610705606785815481106106cb576106cb611223565b906000526020600020015460f881901c9167ffffffffffffffff60b883901c169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b6000806000610758878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b60009081526066602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860b89190911c67ffffffffffffffff16975095505050505050565b600054610100900460ff16158080156107ba5750600054600160ff909116105b806107d45750303b1580156107d4575060005460ff166001145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610371565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108be57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108c6610d72565b6108cf82610cfb565b801561093257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61093e610b3d565b73ffffffffffffffffffffffffffffffffffffffff81166109e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610371565b6109ea81610cfb565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610ac157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610a84565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610b2e577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610371565b606081600003610c0157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610c2b5780610c1581611281565b9150610c249050600a836112e8565b9150610c05565b60008167ffffffffffffffff811115610c4657610c46610ec2565b6040519080825280601f01601f191660200182016040528015610c70576020820181803683370190505b5090505b8415610cf357610c856001836112fc565b9150610c92600a86611313565b610c9d906030611327565b60f81b818381518110610cb257610cb2611223565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610cec600a866112e8565b9450610c74565b949350505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610e09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610371565b6106ae600054610100900460ff16610ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610371565b6106ae33610cfb565b803560ff81168114610ebd57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610f0657600080fd5b610f0f84610eac565b925060208401359150604084013567ffffffffffffffff80821115610f3357600080fd5b818601915086601f830112610f4757600080fd5b813581811115610f5957610f59610ec2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610f9f57610f9f610ec2565b81604052828152896020848701011115610fb857600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60008060008060608587031215610ff057600080fd5b610ff985610eac565b935060208501359250604085013567ffffffffffffffff8082111561101d57600080fd5b818701915087601f83011261103157600080fd5b81358181111561104057600080fd5b88602082850101111561105257600080fd5b95989497505060200194505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109ea57600080fd5b6000806040838503121561109657600080fd5b61109f83610eac565b915060208301356110af81611061565b809150509250929050565b60005b838110156110d55781810151838201526020016110bd565b838111156110e4576000848401525b50505050565b60208152600082518060208401526111098160408501602087016110ba565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561114d57600080fd5b5035919050565b60006020828403121561116657600080fd5b813561117181611061565b9392505050565b60006020828403121561118a57600080fd5b61117182610eac565b838152818360208301376000910160200190815292915050565b600084516111bf8184602089016110ba565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516111fb816001850160208a016110ba565b600192019182015283516112168160028401602088016110ba565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036112b2576112b2611252565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826112f7576112f76112b9565b500490565b60008282101561130e5761130e611252565b500390565b600082611322576113226112b9565b500690565b6000821982111561133a5761133a611252565b50019056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", Bin: "0x60806040523480156200001157600080fd5b506200001e600062000024565b62000292565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016260201b6200097e1760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b6200010c62000171565b6200011782620001d9565b80156200015e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001cd5760405162461bcd60e51b815260206004820152602b6024820152600080516020620012d183398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d76200022b565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620002875760405162461bcd60e51b815260206004820152602b6024820152600080516020620012d183398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d733620001d9565b61102f80620002a26000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063c4d66de81161005b578063c4d66de8146102e8578063dfa162d3146102fb578063f2fde38b1461033157600080fd5b80638da5cb5b14610231578063bb8aa1fc1461024f578063c49d5271146102a057600080fd5b80634d1975b4116100b25780634d1975b4146101d857806354fd4d50146101e0578063715018a61461022957600080fd5b806326daafbe146100d95780633142e55e1461018b57806345583b7a146101c3575b600080fd5b6101786100e7366004610d45565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0810180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0830180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08086018051988652968352606087529451609f0190941683209190925291905291905290565b6040519081526020015b60405180910390f35b61019e610199366004610e2e565b610344565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610182565b6101d66101d1366004610ed7565b6105a6565b005b606754610178565b61021c6040518060400160405280600581526020017f302e302e3600000000000000000000000000000000000000000000000000000081525081565b6040516101829190610f0e565b6101d661062d565b60335473ffffffffffffffffffffffffffffffffffffffff1661019e565b61026261025d366004610f81565b610641565b6040805160ff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610182565b6102b36102ae366004610e2e565b6106a3565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610182565b6101d66102f6366004610f9a565b61072b565b61019e610309366004610fbe565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101d661033f366004610f9a565b6108c7565b60ff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806103ae576040517f44265d6f00000000000000000000000000000000000000000000000000000000815260ff871660048201526024015b60405180910390fd5b6104118585856040516020016103c693929190610fd9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff83169061099a565b91508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561045b57600080fd5b505af115801561046f573d6000803e3d6000fd5b5050505060006104b6878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b60008181526066602052604090205490915015610502576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016103a5565b60004260b81b60f889901b178417600083815260666020526040808220839055606780546001810182559083527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0183905551919250889160ff8b169173ffffffffffffffffffffffffffffffffffffffff8816917ffad0599ff449d8d9685eadecca8cb9e00924c5fd8367c1c09469824939e1ffec9190a4505050949350505050565b6105ae610ace565b60ff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917f623713f72f6e427a8044bb8b3bd6834357cf285decbaa21bcc73c1d0632c4d8491a35050565b610635610ace565b61063f6000610b4f565b565b60008060006106966067858154811061065c5761065c610ff3565b906000526020600020015460f881901c9167ffffffffffffffff60b883901c169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b60008060006106e9878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b60009081526066602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860b89190911c67ffffffffffffffff16975095505050505050565b600054610100900460ff161580801561074b5750600054600160ff909116105b806107655750303b158015610765575060005460ff166001145b6107f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103a5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561084f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610857610bc6565b61086082610b4f565b80156108c357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6108cf610ace565b73ffffffffffffffffffffffffffffffffffffffff8116610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a5565b61097b81610b4f565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610a5257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610a15565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610abf577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461063f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103a5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610c5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103a5565b61063f600054610100900460ff16610cf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103a5565b61063f33610b4f565b803560ff81168114610d1157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610d5a57600080fd5b610d6384610d00565b925060208401359150604084013567ffffffffffffffff80821115610d8757600080fd5b818601915086601f830112610d9b57600080fd5b813581811115610dad57610dad610d16565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610df357610df3610d16565b81604052828152896020848701011115610e0c57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60008060008060608587031215610e4457600080fd5b610e4d85610d00565b935060208501359250604085013567ffffffffffffffff80821115610e7157600080fd5b818701915087601f830112610e8557600080fd5b813581811115610e9457600080fd5b886020828501011115610ea657600080fd5b95989497505060200194505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461097b57600080fd5b60008060408385031215610eea57600080fd5b610ef383610d00565b91506020830135610f0381610eb5565b809150509250929050565b600060208083528351808285015260005b81811015610f3b57858101830151858201604001528201610f1f565b81811115610f4d576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610f9357600080fd5b5035919050565b600060208284031215610fac57600080fd5b8135610fb781610eb5565b9392505050565b600060208284031215610fd057600080fd5b610fb782610d00565b838152818360208301376000910160200190815292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069",
} }
// DisputeGameFactoryABI is the input ABI used to generate the binding from. // DisputeGameFactoryABI is the input ABI used to generate the binding from.
......
...@@ -13,7 +13,7 @@ const DisputeGameFactoryStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"con ...@@ -13,7 +13,7 @@ const DisputeGameFactoryStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"con
var DisputeGameFactoryStorageLayout = new(solc.StorageLayout) var DisputeGameFactoryStorageLayout = new(solc.StorageLayout)
var DisputeGameFactoryDeployedBin = "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063c4d66de81161005b578063c4d66de8146102b4578063dfa162d3146102c7578063f2fde38b146102fd57600080fd5b80638da5cb5b146101fd578063bb8aa1fc1461021b578063c49d52711461026c57600080fd5b80634d1975b4116100b25780634d1975b4146101d857806354fd4d50146101e0578063715018a6146101f557600080fd5b806326daafbe146100d95780633142e55e1461018b57806345583b7a146101c3575b600080fd5b6101786100e7366004610ef1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0810180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0830180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08086018051988652968352606087529451609f0190941683209190925291905291905290565b6040519081526020015b60405180910390f35b61019e610199366004610fda565b610310565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610182565b6101d66101d1366004611083565b610572565b005b606754610178565b6101e86105f9565b60405161018291906110ea565b6101d661069c565b60335473ffffffffffffffffffffffffffffffffffffffff1661019e565b61022e61022936600461113b565b6106b0565b6040805160ff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610182565b61027f61027a366004610fda565b610712565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610182565b6101d66102c2366004611154565b61079a565b61019e6102d5366004611178565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101d661030b366004611154565b610936565b60ff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff168061037a576040517f44265d6f00000000000000000000000000000000000000000000000000000000815260ff871660048201526024015b60405180910390fd5b6103dd85858560405160200161039293929190611193565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff831690610a09565b91508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561042757600080fd5b505af115801561043b573d6000803e3d6000fd5b505050506000610482878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b600081815260666020526040902054909150156104ce576040517f014f6fe500000000000000000000000000000000000000000000000000000000815260048101829052602401610371565b60004260b81b60f889901b178417600083815260666020526040808220839055606780546001810182559083527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0183905551919250889160ff8b169173ffffffffffffffffffffffffffffffffffffffff8816917ffad0599ff449d8d9685eadecca8cb9e00924c5fd8367c1c09469824939e1ffec9190a4505050949350505050565b61057a610b3d565b60ff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917f623713f72f6e427a8044bb8b3bd6834357cf285decbaa21bcc73c1d0632c4d8491a35050565b60606106247f0000000000000000000000000000000000000000000000000000000000000000610bbe565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610bbe565b6106767f0000000000000000000000000000000000000000000000000000000000000000610bbe565b604051602001610688939291906111ad565b604051602081830303815290604052905090565b6106a4610b3d565b6106ae6000610cfb565b565b6000806000610705606785815481106106cb576106cb611223565b906000526020600020015460f881901c9167ffffffffffffffff60b883901c169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b6000806000610758878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b60009081526066602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860b89190911c67ffffffffffffffff16975095505050505050565b600054610100900460ff16158080156107ba5750600054600160ff909116105b806107d45750303b1580156107d4575060005460ff166001145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610371565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108be57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108c6610d72565b6108cf82610cfb565b801561093257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61093e610b3d565b73ffffffffffffffffffffffffffffffffffffffff81166109e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610371565b6109ea81610cfb565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610ac157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610a84565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610b2e577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b60335473ffffffffffffffffffffffffffffffffffffffff1633146106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610371565b606081600003610c0157505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610c2b5780610c1581611281565b9150610c249050600a836112e8565b9150610c05565b60008167ffffffffffffffff811115610c4657610c46610ec2565b6040519080825280601f01601f191660200182016040528015610c70576020820181803683370190505b5090505b8415610cf357610c856001836112fc565b9150610c92600a86611313565b610c9d906030611327565b60f81b818381518110610cb257610cb2611223565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610cec600a866112e8565b9450610c74565b949350505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610e09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610371565b6106ae600054610100900460ff16610ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610371565b6106ae33610cfb565b803560ff81168114610ebd57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610f0657600080fd5b610f0f84610eac565b925060208401359150604084013567ffffffffffffffff80821115610f3357600080fd5b818601915086601f830112610f4757600080fd5b813581811115610f5957610f59610ec2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610f9f57610f9f610ec2565b81604052828152896020848701011115610fb857600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60008060008060608587031215610ff057600080fd5b610ff985610eac565b935060208501359250604085013567ffffffffffffffff8082111561101d57600080fd5b818701915087601f83011261103157600080fd5b81358181111561104057600080fd5b88602082850101111561105257600080fd5b95989497505060200194505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109ea57600080fd5b6000806040838503121561109657600080fd5b61109f83610eac565b915060208301356110af81611061565b809150509250929050565b60005b838110156110d55781810151838201526020016110bd565b838111156110e4576000848401525b50505050565b60208152600082518060208401526111098160408501602087016110ba565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561114d57600080fd5b5035919050565b60006020828403121561116657600080fd5b813561117181611061565b9392505050565b60006020828403121561118a57600080fd5b61117182610eac565b838152818360208301376000910160200190815292915050565b600084516111bf8184602089016110ba565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516111fb816001850160208a016110ba565b600192019182015283516112168160028401602088016110ba565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036112b2576112b2611252565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826112f7576112f76112b9565b500490565b60008282101561130e5761130e611252565b500390565b600082611322576113226112b9565b500690565b6000821982111561133a5761133a611252565b50019056fea164736f6c634300080f000a" var DisputeGameFactoryDeployedBin = "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063c4d66de81161005b578063c4d66de8146102e8578063dfa162d3146102fb578063f2fde38b1461033157600080fd5b80638da5cb5b14610231578063bb8aa1fc1461024f578063c49d5271146102a057600080fd5b80634d1975b4116100b25780634d1975b4146101d857806354fd4d50146101e0578063715018a61461022957600080fd5b806326daafbe146100d95780633142e55e1461018b57806345583b7a146101c3575b600080fd5b6101786100e7366004610d45565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0810180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0830180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08086018051988652968352606087529451609f0190941683209190925291905291905290565b6040519081526020015b60405180910390f35b61019e610199366004610e2e565b610344565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610182565b6101d66101d1366004610ed7565b6105a6565b005b606754610178565b61021c6040518060400160405280600581526020017f302e302e3600000000000000000000000000000000000000000000000000000081525081565b6040516101829190610f0e565b6101d661062d565b60335473ffffffffffffffffffffffffffffffffffffffff1661019e565b61026261025d366004610f81565b610641565b6040805160ff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610182565b6102b36102ae366004610e2e565b6106a3565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610182565b6101d66102f6366004610f9a565b61072b565b61019e610309366004610fbe565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101d661033f366004610f9a565b6108c7565b60ff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806103ae576040517f44265d6f00000000000000000000000000000000000000000000000000000000815260ff871660048201526024015b60405180910390fd5b6104118585856040516020016103c693929190610fd9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff83169061099a565b91508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561045b57600080fd5b505af115801561046f573d6000803e3d6000fd5b5050505060006104b6878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b60008181526066602052604090205490915015610502576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016103a5565b60004260b81b60f889901b178417600083815260666020526040808220839055606780546001810182559083527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae0183905551919250889160ff8b169173ffffffffffffffffffffffffffffffffffffffff8816917ffad0599ff449d8d9685eadecca8cb9e00924c5fd8367c1c09469824939e1ffec9190a4505050949350505050565b6105ae610ace565b60ff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917f623713f72f6e427a8044bb8b3bd6834357cf285decbaa21bcc73c1d0632c4d8491a35050565b610635610ace565b61063f6000610b4f565b565b60008060006106966067858154811061065c5761065c610ff3565b906000526020600020015460f881901c9167ffffffffffffffff60b883901c169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b60008060006106e9878787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100e792505050565b60009081526066602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860b89190911c67ffffffffffffffff16975095505050505050565b600054610100900460ff161580801561074b5750600054600160ff909116105b806107655750303b158015610765575060005460ff166001145b6107f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103a5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561084f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610857610bc6565b61086082610b4f565b80156108c357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6108cf610ace565b73ffffffffffffffffffffffffffffffffffffffff8116610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a5565b61097b81610b4f565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610a5257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610a15565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610abf577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461063f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103a5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610c5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103a5565b61063f600054610100900460ff16610cf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103a5565b61063f33610b4f565b803560ff81168114610d1157600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610d5a57600080fd5b610d6384610d00565b925060208401359150604084013567ffffffffffffffff80821115610d8757600080fd5b818601915086601f830112610d9b57600080fd5b813581811115610dad57610dad610d16565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610df357610df3610d16565b81604052828152896020848701011115610e0c57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60008060008060608587031215610e4457600080fd5b610e4d85610d00565b935060208501359250604085013567ffffffffffffffff80821115610e7157600080fd5b818701915087601f830112610e8557600080fd5b813581811115610e9457600080fd5b886020828501011115610ea657600080fd5b95989497505060200194505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461097b57600080fd5b60008060408385031215610eea57600080fd5b610ef383610d00565b91506020830135610f0381610eb5565b809150509250929050565b600060208083528351808285015260005b81811015610f3b57858101830151858201604001528201610f1f565b81811115610f4d576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610f9357600080fd5b5035919050565b600060208284031215610fac57600080fd5b8135610fb781610eb5565b9392505050565b600060208284031215610fd057600080fd5b610fb782610d00565b838152818360208301376000910160200190815292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea164736f6c634300080f000a"
func init() { func init() {
if err := json.Unmarshal([]byte(DisputeGameFactoryStorageLayoutJSON), DisputeGameFactoryStorageLayout); err != nil { if err := json.Unmarshal([]byte(DisputeGameFactoryStorageLayoutJSON), DisputeGameFactoryStorageLayout); err != nil {
......
...@@ -38,7 +38,7 @@ type IFaultDisputeGameOutputProposal struct { ...@@ -38,7 +38,7 @@ type IFaultDisputeGameOutputProposal struct {
// FaultDisputeGameMetaData contains all meta data concerning the FaultDisputeGame contract. // FaultDisputeGameMetaData contains all meta data concerning the FaultDisputeGame contract.
var FaultDisputeGameMetaData = &bind.MetaData{ var FaultDisputeGameMetaData = &bind.MetaData{
ABI: "[{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_maxGameDepth\",\"type\":\"uint256\"},{\"internalType\":\"Duration\",\"name\":\"_gameDuration\",\"type\":\"uint64\"},{\"internalType\":\"contractIBigStepper\",\"name\":\"_vm\",\"type\":\"address\"},{\"internalType\":\"contractL2OutputOracle\",\"name\":\"_l2oo\",\"type\":\"address\"},{\"internalType\":\"contractBlockOracle\",\"name\":\"_blockOracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotDefendRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockTimeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameDepthExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrestate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1HeadTooOld\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfOrderResolution\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidStep\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enumGameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ABSOLUTE_PRESTATE\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLOCK_ORACLE\",\"outputs\":[{\"internalType\":\"contractBlockOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GAME_DURATION\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"L2_OUTPUT_ORACLE\",\"outputs\":[{\"internalType\":\"contractL2OutputOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_GAME_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VM\",\"outputs\":[{\"internalType\":\"contractIBigStepper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bondManager\",\"outputs\":[{\"internalType\":\"contractIBondManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimData\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"parentIndex\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"countered\",\"type\":\"bool\"},{\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"internalType\":\"Position\",\"name\":\"position\",\"type\":\"uint128\"},{\"internalType\":\"Clock\",\"name\":\"clock\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDataLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"len_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l1BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposals\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"index\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2BlockNumber\",\"type\":\"uint128\"},{\"internalType\":\"Hash\",\"name\":\"outputRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIFaultDisputeGame.OutputProposal\",\"name\":\"starting\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"index\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2BlockNumber\",\"type\":\"uint128\"},{\"internalType\":\"Hash\",\"name\":\"outputRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIFaultDisputeGame.OutputProposal\",\"name\":\"disputed\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", ABI: "[{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_maxGameDepth\",\"type\":\"uint256\"},{\"internalType\":\"Duration\",\"name\":\"_gameDuration\",\"type\":\"uint64\"},{\"internalType\":\"contractIBigStepper\",\"name\":\"_vm\",\"type\":\"address\"},{\"internalType\":\"contractL2OutputOracle\",\"name\":\"_l2oo\",\"type\":\"address\"},{\"internalType\":\"contractBlockOracle\",\"name\":\"_blockOracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotDefendRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockTimeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameDepthExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrestate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1HeadTooOld\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfOrderResolution\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidStep\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enumGameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ABSOLUTE_PRESTATE\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLOCK_ORACLE\",\"outputs\":[{\"internalType\":\"contractBlockOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GAME_DURATION\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"L2_OUTPUT_ORACLE\",\"outputs\":[{\"internalType\":\"contractL2OutputOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_GAME_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VM\",\"outputs\":[{\"internalType\":\"contractIBigStepper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bondManager\",\"outputs\":[{\"internalType\":\"contractIBondManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimData\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"parentIndex\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"countered\",\"type\":\"bool\"},{\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"internalType\":\"Position\",\"name\":\"position\",\"type\":\"uint128\"},{\"internalType\":\"Clock\",\"name\":\"clock\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDataLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"len_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l1BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposals\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"index\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2BlockNumber\",\"type\":\"uint128\"},{\"internalType\":\"Hash\",\"name\":\"outputRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIFaultDisputeGame.OutputProposal\",\"name\":\"starting\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"index\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2BlockNumber\",\"type\":\"uint128\"},{\"internalType\":\"Hash\",\"name\":\"outputRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structIFaultDisputeGame.OutputProposal\",\"name\":\"disputed\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enumGameStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
Bin: "0x6101c06040523480156200001257600080fd5b5060405162002daf38038062002daf8339810160408190526200003591620000a1565b6000608081905260a052600960c05260ff9096166101a05260e094909452610100929092526001600160401b0316610120526001600160a01b039081166101405290811661016052166101805262000145565b6001600160a01b03811681146200009e57600080fd5b50565b600080600080600080600060e0888a031215620000bd57600080fd5b875160ff81168114620000cf57600080fd5b602089015160408a015160608b015192995090975095506001600160401b0381168114620000fc57600080fd5b60808901519094506200010f8162000088565b60a0890151909350620001228162000088565b60c0890151909250620001358162000088565b8091505092959891949750929550565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051612b9a620002156000396000818161052d0152611caa015260008181610369015261152b0152600081816105a6015281816112f8015281816113cc01526114a50152600081816104f7015281816107630152611a290152600081816105da01528181610df40152611d9901526000818161033501528181610c33015261182801526000818161022c015261198401526000610a9001526000610a6701526000610a3e0152612b9a6000f3fe6080604052600436106101b75760003560e01c80638129fc1c116100ec578063c31b29ce1161008a578063cf09e0d011610064578063cf09e0d01461068c578063d8cc1a3c146106ad578063fa24f743146106cd578063fdffbb28146106f157600080fd5b8063c31b29ce146105c8578063c55cd0c714610615578063c6f0308c1461062857600080fd5b806392931298116100c657806392931298146104e5578063bbdc02db14610519578063bcef3b5514610557578063c0c3a0921461059457600080fd5b80638129fc1c1461047b5780638980e0cc146104905780638b85902b146104a557600080fd5b80634778efe81161015957806355ef20e61161013357806355ef20e6146103ad578063609d33341461043d578063632247ea146104525780636361506d1461046557600080fd5b80634778efe814610323578063529184c91461035757806354fd4d501461038b57600080fd5b80632810e1d6116101955780632810e1d61461025c578063298c90051461027157806335fef567146102b1578063363cc427146102c457600080fd5b80631e27052a146101bc578063200d2ed2146101de578063266198f91461021a575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461243b565b610704565b005b3480156101ea57600080fd5b506000546102049068010000000000000000900460ff1681565b604051610211919061248c565b60405180910390f35b34801561022657600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610211565b34801561026857600080fd5b506102046108c3565b34801561027d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561024e565b6101dc6102bf36600461243b565b610a27565b3480156102d057600080fd5b506000546102fe906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b34801561032f57600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036357600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039757600080fd5b506103a0610a37565b6040516102119190612543565b3480156103b957600080fd5b5060408051606080820183526003546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000918290048116602080860191909152600454858701528551938401865260055480831685529290920416908201526006549281019290925261042f9182565b60405161021192919061255d565b34801561044957600080fd5b506103a0610ada565b6101dc6104603660046125c6565b610ae8565b34801561047157600080fd5b5061024e60015481565b34801561048757600080fd5b506101dc6110fe565b34801561049c57600080fd5b5060025461024e565b3480156104b157600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561024e565b3480156104f157600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052557600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610211565b34801561056357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561024e565b3480156105a057600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d457600080fd5b506105fc7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610211565b6101dc61062336600461243b565b611702565b34801561063457600080fd5b506106486106433660046125fb565b61170e565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610211565b34801561069857600080fd5b506000546105fc9067ffffffffffffffff1681565b3480156106b957600080fd5b506101dc6106c836600461265d565b61177f565b3480156106d957600080fd5b506106e2611ca8565b604051610211939291906126e7565b6101dc6106ff3660046125fb565b611d05565b6000805468010000000000000000900460ff1660028111156107285761072861245d565b1461075f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f09190612712565b7f9a1f5e7f00000000000000000000000000000000000000000000000000000000601c8190526020859052909150600084600181146108575760028114610861576003811461086b576004811461087557600581146108855763ff137e656000526004601cfd5b600154915061088c565b600454915061088c565b600654915061088c565b60035460801c60c01b915061088c565b4660c01b91505b50604052600160038511811b6005031b60605260808390526000806084601c82865af16108bd573d6000803e3d6000fd5b50505050565b60008060005468010000000000000000900460ff1660028111156108e9576108e961245d565b14610920576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095460ff1661095c576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260008154811061097057610970612748565b6000918252602090912060039091020154640100000000900460ff1661099757600261099a565b60015b6000805491925082917fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000008360028111156109e1576109e161245d565b0217905560028111156109f6576109f661245d565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b905090565b610a3382826000610ae8565b5050565b6060610a627f0000000000000000000000000000000000000000000000000000000000000000612036565b610a8b7f0000000000000000000000000000000000000000000000000000000000000000612036565b610ab47f0000000000000000000000000000000000000000000000000000000000000000612036565b604051602001610ac693929190612777565b604051602081830303815290604052905090565b6060610a2260206040612173565b6000805468010000000000000000900460ff166002811115610b0c57610b0c61245d565b14610b43576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610b4f575080155b15610b86576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b9b57610b9b612748565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff80821660608501819052700100000000000000000000000000000000909204166080840152919350610c2f9190859061220a16565b90507f0000000000000000000000000000000000000000000000000000000000000000610cee826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610d30576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610d90576002836000015163ffffffff1681548110610d5f57610d5f612748565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610dc9846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610ddd919061281c565b610de79190612834565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610e5a576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526007602052604090205490915060ff1615610ed8576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260076020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c16606084019081528982166080850190815260028054808801825599819052945160039099027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf8701559351925184167001000000000000000000000000000000000292909316919091177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad09093019290925580548b90811061105057611050612748565b6000918252602080832060039092029091018054931515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909416939093179092558a81526008909152604090206002546110b490600190612834565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560001a600181148061113e575060ff81166002145b6111a4576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335600482015260240160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016112297ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff9081169091528254600181810185556000948552602080862085516003909402018054918601511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921663ffffffff909416939093171782556040840151908201556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016637f00642061135260207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161137091815260200190565b602060405180830381865afa15801561138d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b1919061284b565b9050600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a25ae5576113fc600185612834565b6040518263ffffffff1660e01b815260040161141a91815260200190565b606060405180830381865afa158015611437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145b91906128b3565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa1580156114ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151091906128b3565b9050600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166399d548aa367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001356040518263ffffffff1660e01b815260040161159c91815260200190565b6040805180830381865afa1580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc919061293f565b905081602001516fffffffffffffffffffffffffffffffff16816020015167ffffffffffffffff161161163b576040517f13809ba500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a081018252908190810180611656600189612834565b6fffffffffffffffffffffffffffffffff908116825260408881015182166020808501919091529851928101929092529183528051606081018252978216885285810151821688880152945187860152908501959095528051805181860151908716700100000000000000000000000000000000918816820217600355908401516004559084015180519481015194861694909516029290921760055591909101516006555160015550565b610a3382826001610ae8565b6002818154811061171e57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff1660028111156117a3576117a361245d565b146117da576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600287815481106117ef576117ef612748565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b905061184e7f0000000000000000000000000000000000000000000000000000000000000000600161281c565b6118ea826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161461192b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156119ae5761194f836fffffffffffffffffffffffffffffffff16612212565b67ffffffffffffffff16156119825761197961196c6001866129c6565b865463ffffffff166122b8565b600101546119a4565b7f00000000000000000000000000000000000000000000000000000000000000005b91508490506119c8565b846001015491506119c584600161196c91906129f7565b90505b600882901b60088a8a6040516119df929190612a2b565b6040518091039020901b14611a20576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611a869493929190612a84565b6020604051808303816000875af1158015611aa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac9919061284b565b600284810154929091149250600091611b74906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611c10886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611c1a9190612ab6565b611c249190612b06565b67ffffffffffffffff161590508115158103611c6c576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611cfe610ada565b9050909192565b6000805468010000000000000000900460ff166002811115611d2957611d2961245d565b14611d60576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611d7557611d75612748565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611de590700100000000000000000000000000000000900467ffffffffffffffff1642612834565b6002830154611e159190700100000000000000000000000000000000900460401c67ffffffffffffffff1661281c565b11611e4c576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260086020526040902082158015611e6a575060095460ff165b15611ea1576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611eaf57508215155b15611ee6576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611fb4576000838281548110611f0757611f07612748565b6000918252602080832090910154808352600890915260409091205490915015611f5d576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611f7257611f72612748565b600091825260209091206003909102018054909150640100000000900460ff16611fa157600193505050611fb4565b505080611fad90612b2d565b9050611eea565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600860205260408120611ffd91612401565b836000036108bd57600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550505050565b60608160000361207957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156120a3578061208d81612b2d565b915061209c9050600a83612b65565b915061207d565b60008167ffffffffffffffff8111156120be576120be612864565b6040519080825280601f01601f1916602001820160405280156120e8576020820181803683370190505b5090505b841561216b576120fd600183612834565b915061210a600a86612b79565b61211590603061281c565b60f81b81838151811061212a5761212a612748565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612164600a86612b65565b94506120ec565b949350505050565b606060006121aa84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900361281c565b90508267ffffffffffffffff1667ffffffffffffffff8111156121cf576121cf612864565b6040519080825280601f01601f1916602001820160405280156121f9576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60008061229f837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806122d6846fffffffffffffffffffffffffffffffff16612355565b9050600283815481106122eb576122eb612748565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461234e57815460028054909163ffffffff1690811061233957612339612748565b906000526020600020906003020191506122fc565b5092915050565b600081196001830116816123e9827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b508054600082559060005260206000209081019061241f9190612422565b50565b5b808211156124375760008155600101612423565b5090565b6000806040838503121561244e57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106124c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60005b838110156124e85781810151838201526020016124d0565b838111156108bd5750506000910152565b600081518084526125118160208601602086016124cd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061255660208301846124f9565b9392505050565b82516fffffffffffffffffffffffffffffffff90811682526020808501518216818401526040808601518185015284518316606085015290840151909116608083015282015160a082015260c08101612556565b803580151581146125c157600080fd5b919050565b6000806000606084860312156125db57600080fd5b83359250602084013591506125f2604085016125b1565b90509250925092565b60006020828403121561260d57600080fd5b5035919050565b60008083601f84011261262657600080fd5b50813567ffffffffffffffff81111561263e57600080fd5b60208301915083602082850101111561265657600080fd5b9250929050565b6000806000806000806080878903121561267657600080fd5b86359550612686602088016125b1565b9450604087013567ffffffffffffffff808211156126a357600080fd5b6126af8a838b01612614565b909650945060608901359150808211156126c857600080fd5b506126d589828a01612614565b979a9699509497509295939492505050565b60ff8416815282602082015260606040820152600061270960608301846124f9565b95945050505050565b60006020828403121561272457600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461255657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600084516127898184602089016124cd565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516127c5816001850160208a016124cd565b600192019182015283516127e08160028401602088016124cd565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561282f5761282f6127ed565b500190565b600082821015612846576128466127ed565b500390565b60006020828403121561285d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff811681146125c157600080fd5b6000606082840312156128c557600080fd5b6040516060810181811067ffffffffffffffff8211171561290f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528251815261292260208401612893565b602082015261293360408401612893565b60408201529392505050565b60006040828403121561295157600080fd5b6040516040810167ffffffffffffffff828210818311171561299c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b81604052845183526020850151915080821682146129b957600080fd5b5060208201529392505050565b60006fffffffffffffffffffffffffffffffff838116908316818110156129ef576129ef6127ed565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115612a2257612a226127ed565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612a98604083018688612a3b565b8281036020840152612aab818587612a3b565b979650505050505050565b600067ffffffffffffffff838116908316818110156129ef576129ef6127ed565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680612b2157612b21612ad7565b92169190910692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b5e57612b5e6127ed565b5060010190565b600082612b7457612b74612ad7565b500490565b600082612b8857612b88612ad7565b50069056fea164736f6c634300080f000a", Bin: "0x6101606040523480156200001257600080fd5b5060405162002b1f38038062002b1f83398101604081905262000035916200008f565b60ff9096166101405260809490945260a0929092526001600160401b031660c0526001600160a01b0390811660e05290811661010052166101205262000133565b6001600160a01b03811681146200008c57600080fd5b50565b600080600080600080600060e0888a031215620000ab57600080fd5b875160ff81168114620000bd57600080fd5b602089015160408a015160608b015192995090975095506001600160401b0381168114620000ea57600080fd5b6080890151909450620000fd8162000076565b60a0890151909350620001108162000076565b60c0890151909250620001238162000076565b8091505092959891949750929550565b60805160a05160c05160e05161010051610120516101405161293d620001e2600039600081816105610152611c3b01526000818161036901526114bc0152600081816105da015281816112890152818161135d015261143601526000818161052b0152818161079701526119ba01526000818161060e01528181610d850152611d2a01526000818161033501528181610bc401526117b901526000818161022c0152611915015261293d6000f3fe6080604052600436106101b75760003560e01c80638129fc1c116100ec578063c31b29ce1161008a578063cf09e0d011610064578063cf09e0d0146106c0578063d8cc1a3c146106e1578063fa24f74314610701578063fdffbb281461072557600080fd5b8063c31b29ce146105fc578063c55cd0c714610649578063c6f0308c1461065c57600080fd5b806392931298116100c65780639293129814610519578063bbdc02db1461054d578063bcef3b551461058b578063c0c3a092146105c857600080fd5b80638129fc1c146104af5780638980e0cc146104c45780638b85902b146104d957600080fd5b80634778efe81161015957806355ef20e61161013357806355ef20e6146103e1578063609d333414610471578063632247ea146104865780636361506d1461049957600080fd5b80634778efe814610323578063529184c91461035757806354fd4d501461038b57600080fd5b80632810e1d6116101955780632810e1d61461025c578063298c90051461027157806335fef567146102b1578063363cc427146102c457600080fd5b80631e27052a146101bc578063200d2ed2146101de578063266198f91461021a575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461228f565b610738565b005b3480156101ea57600080fd5b506000546102049068010000000000000000900460ff1681565b60405161021191906122e0565b60405180910390f35b34801561022657600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610211565b34801561026857600080fd5b506102046108f7565b34801561027d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561024e565b6101dc6102bf36600461228f565b610a5b565b3480156102d057600080fd5b506000546102fe906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b34801561032f57600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036357600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039757600080fd5b506103d46040518060400160405280600681526020017f302e302e3130000000000000000000000000000000000000000000000000000081525081565b604051610211919061238c565b3480156103ed57600080fd5b5060408051606080820183526003546fffffffffffffffffffffffffffffffff808216845270010000000000000000000000000000000091829004811660208086019190915260045485870152855193840186526005548083168552929092041690820152600654928101929092526104639182565b6040516102119291906123a6565b34801561047d57600080fd5b506103d4610a6b565b6101dc61049436600461240f565b610a79565b3480156104a557600080fd5b5061024e60015481565b3480156104bb57600080fd5b506101dc61108f565b3480156104d057600080fd5b5060025461024e565b3480156104e557600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561024e565b34801561052557600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055957600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610211565b34801561059757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561024e565b3480156105d457600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561060857600080fd5b506106307f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610211565b6101dc61065736600461228f565b611693565b34801561066857600080fd5b5061067c610677366004612444565b61169f565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610211565b3480156106cc57600080fd5b506000546106309067ffffffffffffffff1681565b3480156106ed57600080fd5b506101dc6106fc3660046124a6565b611710565b34801561070d57600080fd5b50610716611c39565b60405161021193929190612530565b6101dc610733366004612444565b611c96565b6000805468010000000000000000900460ff16600281111561075c5761075c6122b1565b14610793576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610800573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610824919061255b565b7f9a1f5e7f00000000000000000000000000000000000000000000000000000000601c81905260208590529091506000846001811461088b5760028114610895576003811461089f57600481146108a957600581146108b95763ff137e656000526004601cfd5b60015491506108c0565b60045491506108c0565b60065491506108c0565b60035460801c60c01b91506108c0565b4660c01b91505b50604052600160038511811b6005031b60605260808390526000806084601c82865af16108f1573d6000803e3d6000fd5b50505050565b60008060005468010000000000000000900460ff16600281111561091d5761091d6122b1565b14610954576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095460ff16610990576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026000815481106109a4576109a4612591565b6000918252602090912060039091020154640100000000900460ff166109cb5760026109ce565b60015b6000805491925082917fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1668010000000000000000836002811115610a1557610a156122b1565b021790556002811115610a2a57610a2a6122b1565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b905090565b610a6782826000610a79565b5050565b6060610a5660206040611fc7565b6000805468010000000000000000900460ff166002811115610a9d57610a9d6122b1565b14610ad4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610ae0575080155b15610b17576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b2c57610b2c612591565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff80821660608501819052700100000000000000000000000000000000909204166080840152919350610bc09190859061205e16565b90507f0000000000000000000000000000000000000000000000000000000000000000610c7f826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610cc1576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610d21576002836000015163ffffffff1681548110610cf057610cf0612591565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610d5a846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610d6e91906125ef565b610d789190612607565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610deb576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526007602052604090205490915060ff1615610e69576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260076020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c16606084019081528982166080850190815260028054808801825599819052945160039099027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf8701559351925184167001000000000000000000000000000000000292909316919091177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad09093019290925580548b908110610fe157610fe1612591565b6000918252602080832060039092029091018054931515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909416939093179092558a815260089091526040902060025461104590600190612607565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560001a60018114806110cf575060ff81166002145b611135576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335600482015260240160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016111ba7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff9081169091528254600181810185556000948552602080862085516003909402018054918601511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921663ffffffff909416939093171782556040840151908201556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016637f0064206112e360207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161130191815260200190565b602060405180830381865afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611342919061261e565b9050600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a25ae55761138d600185612607565b6040518263ffffffff1660e01b81526004016113ab91815260200190565b606060405180830381865afa1580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec9190612686565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a19190612686565b9050600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166399d548aa367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001356040518263ffffffff1660e01b815260040161152d91815260200190565b6040805180830381865afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190612712565b905081602001516fffffffffffffffffffffffffffffffff16816020015167ffffffffffffffff16116115cc576040517f13809ba500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a0810182529081908101806115e7600189612607565b6fffffffffffffffffffffffffffffffff908116825260408881015182166020808501919091529851928101929092529183528051606081018252978216885285810151821688880152945187860152908501959095528051805181860151908716700100000000000000000000000000000000918816820217600355908401516004559084015180519481015194861694909516029290921760055591909101516006555160015550565b610a6782826001610a79565b600281815481106116af57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff166002811115611734576117346122b1565b1461176b576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002878154811061178057611780612591565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506117df7f000000000000000000000000000000000000000000000000000000000000000060016125ef565b61187b826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146118bc576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561193f576118e0836fffffffffffffffffffffffffffffffff16612066565b67ffffffffffffffff16156119135761190a6118fd600186612799565b865463ffffffff1661210c565b60010154611935565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611959565b846001015491506119568460016118fd91906127ca565b90505b600882901b60088a8a6040516119709291906127fe565b6040518091039020901b146119b1576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611a179493929190612857565b6020604051808303816000875af1158015611a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5a919061261e565b600284810154929091149250600091611b05906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611ba1886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611bab9190612889565b611bb591906128aa565b67ffffffffffffffff161590508115158103611bfd576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611c8f610a6b565b9050909192565b6000805468010000000000000000900460ff166002811115611cba57611cba6122b1565b14611cf1576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611d0657611d06612591565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611d7690700100000000000000000000000000000000900467ffffffffffffffff1642612607565b6002830154611da69190700100000000000000000000000000000000900460401c67ffffffffffffffff166125ef565b11611ddd576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260086020526040902082158015611dfb575060095460ff165b15611e32576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611e4057508215155b15611e77576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611f45576000838281548110611e9857611e98612591565b6000918252602080832090910154808352600890915260409091205490915015611eee576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611f0357611f03612591565b600091825260209091206003909102018054909150640100000000900460ff16611f3257600193505050611f45565b505080611f3e906128f8565b9050611e7b565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600860205260408120611f8e91612255565b836000036108f157600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550505050565b60606000611ffe84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036125ef565b90508267ffffffffffffffff1667ffffffffffffffff81111561202357612023612637565b6040519080825280601f01601f19166020018201604052801561204d576020820181803683370190505b509150828160208401375092915050565b151760011b90565b6000806120f3837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008061212a846fffffffffffffffffffffffffffffffff166121a9565b90506002838154811061213f5761213f612591565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff8281169116146121a257815460028054909163ffffffff1690811061218d5761218d612591565b90600052602060002090600302019150612150565b5092915050565b6000811960018301168161223d827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b50805460008255906000526020600020908101906122739190612276565b50565b5b8082111561228b5760008155600101612277565b5090565b600080604083850312156122a257600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061231b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000815180845260005b818110156123475760208185018101518683018201520161232b565b81811115612359576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061239f6020830184612321565b9392505050565b82516fffffffffffffffffffffffffffffffff90811682526020808501518216818401526040808601518185015284518316606085015290840151909116608083015282015160a082015260c0810161239f565b8035801515811461240a57600080fd5b919050565b60008060006060848603121561242457600080fd5b833592506020840135915061243b604085016123fa565b90509250925092565b60006020828403121561245657600080fd5b5035919050565b60008083601f84011261246f57600080fd5b50813567ffffffffffffffff81111561248757600080fd5b60208301915083602082850101111561249f57600080fd5b9250929050565b600080600080600080608087890312156124bf57600080fd5b863595506124cf602088016123fa565b9450604087013567ffffffffffffffff808211156124ec57600080fd5b6124f88a838b0161245d565b9096509450606089013591508082111561251157600080fd5b5061251e89828a0161245d565b979a9699509497509295939492505050565b60ff841681528260208201526060604082015260006125526060830184612321565b95945050505050565b60006020828403121561256d57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461239f57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115612602576126026125c0565b500190565b600082821015612619576126196125c0565b500390565b60006020828403121561263057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461240a57600080fd5b60006060828403121561269857600080fd5b6040516060810181811067ffffffffffffffff821117156126e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526126f560208401612666565b602082015261270660408401612666565b60408201529392505050565b60006040828403121561272457600080fd5b6040516040810167ffffffffffffffff828210818311171561276f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b816040528451835260208501519150808216821461278c57600080fd5b5060208201529392505050565b60006fffffffffffffffffffffffffffffffff838116908316818110156127c2576127c26125c0565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156127f5576127f56125c0565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061286b60408301868861280e565b828103602084015261287e81858761280e565b979650505050505050565b600067ffffffffffffffff838116908316818110156127c2576127c26125c0565b600067ffffffffffffffff808416806128ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612929576129296125c0565b506001019056fea164736f6c634300080f000a",
} }
// FaultDisputeGameABI is the input ABI used to generate the binding from. // FaultDisputeGameABI is the input ABI used to generate the binding from.
......
...@@ -13,7 +13,7 @@ const FaultDisputeGameStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contr ...@@ -13,7 +13,7 @@ const FaultDisputeGameStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contr
var FaultDisputeGameStorageLayout = new(solc.StorageLayout) var FaultDisputeGameStorageLayout = new(solc.StorageLayout)
var FaultDisputeGameDeployedBin = "0x6080604052600436106101b75760003560e01c80638129fc1c116100ec578063c31b29ce1161008a578063cf09e0d011610064578063cf09e0d01461068c578063d8cc1a3c146106ad578063fa24f743146106cd578063fdffbb28146106f157600080fd5b8063c31b29ce146105c8578063c55cd0c714610615578063c6f0308c1461062857600080fd5b806392931298116100c657806392931298146104e5578063bbdc02db14610519578063bcef3b5514610557578063c0c3a0921461059457600080fd5b80638129fc1c1461047b5780638980e0cc146104905780638b85902b146104a557600080fd5b80634778efe81161015957806355ef20e61161013357806355ef20e6146103ad578063609d33341461043d578063632247ea146104525780636361506d1461046557600080fd5b80634778efe814610323578063529184c91461035757806354fd4d501461038b57600080fd5b80632810e1d6116101955780632810e1d61461025c578063298c90051461027157806335fef567146102b1578063363cc427146102c457600080fd5b80631e27052a146101bc578063200d2ed2146101de578063266198f91461021a575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461243b565b610704565b005b3480156101ea57600080fd5b506000546102049068010000000000000000900460ff1681565b604051610211919061248c565b60405180910390f35b34801561022657600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610211565b34801561026857600080fd5b506102046108c3565b34801561027d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561024e565b6101dc6102bf36600461243b565b610a27565b3480156102d057600080fd5b506000546102fe906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b34801561032f57600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036357600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039757600080fd5b506103a0610a37565b6040516102119190612543565b3480156103b957600080fd5b5060408051606080820183526003546fffffffffffffffffffffffffffffffff8082168452700100000000000000000000000000000000918290048116602080860191909152600454858701528551938401865260055480831685529290920416908201526006549281019290925261042f9182565b60405161021192919061255d565b34801561044957600080fd5b506103a0610ada565b6101dc6104603660046125c6565b610ae8565b34801561047157600080fd5b5061024e60015481565b34801561048757600080fd5b506101dc6110fe565b34801561049c57600080fd5b5060025461024e565b3480156104b157600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561024e565b3480156104f157600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561052557600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610211565b34801561056357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561024e565b3480156105a057600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d457600080fd5b506105fc7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610211565b6101dc61062336600461243b565b611702565b34801561063457600080fd5b506106486106433660046125fb565b61170e565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610211565b34801561069857600080fd5b506000546105fc9067ffffffffffffffff1681565b3480156106b957600080fd5b506101dc6106c836600461265d565b61177f565b3480156106d957600080fd5b506106e2611ca8565b604051610211939291906126e7565b6101dc6106ff3660046125fb565b611d05565b6000805468010000000000000000900460ff1660028111156107285761072861245d565b1461075f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f09190612712565b7f9a1f5e7f00000000000000000000000000000000000000000000000000000000601c8190526020859052909150600084600181146108575760028114610861576003811461086b576004811461087557600581146108855763ff137e656000526004601cfd5b600154915061088c565b600454915061088c565b600654915061088c565b60035460801c60c01b915061088c565b4660c01b91505b50604052600160038511811b6005031b60605260808390526000806084601c82865af16108bd573d6000803e3d6000fd5b50505050565b60008060005468010000000000000000900460ff1660028111156108e9576108e961245d565b14610920576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095460ff1661095c576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260008154811061097057610970612748565b6000918252602090912060039091020154640100000000900460ff1661099757600261099a565b60015b6000805491925082917fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000008360028111156109e1576109e161245d565b0217905560028111156109f6576109f661245d565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b905090565b610a3382826000610ae8565b5050565b6060610a627f0000000000000000000000000000000000000000000000000000000000000000612036565b610a8b7f0000000000000000000000000000000000000000000000000000000000000000612036565b610ab47f0000000000000000000000000000000000000000000000000000000000000000612036565b604051602001610ac693929190612777565b604051602081830303815290604052905090565b6060610a2260206040612173565b6000805468010000000000000000900460ff166002811115610b0c57610b0c61245d565b14610b43576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610b4f575080155b15610b86576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b9b57610b9b612748565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff80821660608501819052700100000000000000000000000000000000909204166080840152919350610c2f9190859061220a16565b90507f0000000000000000000000000000000000000000000000000000000000000000610cee826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610d30576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610d90576002836000015163ffffffff1681548110610d5f57610d5f612748565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610dc9846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610ddd919061281c565b610de79190612834565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610e5a576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526007602052604090205490915060ff1615610ed8576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260076020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c16606084019081528982166080850190815260028054808801825599819052945160039099027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf8701559351925184167001000000000000000000000000000000000292909316919091177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad09093019290925580548b90811061105057611050612748565b6000918252602080832060039092029091018054931515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909416939093179092558a81526008909152604090206002546110b490600190612834565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560001a600181148061113e575060ff81166002145b6111a4576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335600482015260240160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016112297ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff9081169091528254600181810185556000948552602080862085516003909402018054918601511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921663ffffffff909416939093171782556040840151908201556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016637f00642061135260207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161137091815260200190565b602060405180830381865afa15801561138d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b1919061284b565b9050600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a25ae5576113fc600185612834565b6040518263ffffffff1660e01b815260040161141a91815260200190565b606060405180830381865afa158015611437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145b91906128b3565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa1580156114ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151091906128b3565b9050600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166399d548aa367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001356040518263ffffffff1660e01b815260040161159c91815260200190565b6040805180830381865afa1580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc919061293f565b905081602001516fffffffffffffffffffffffffffffffff16816020015167ffffffffffffffff161161163b576040517f13809ba500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a081018252908190810180611656600189612834565b6fffffffffffffffffffffffffffffffff908116825260408881015182166020808501919091529851928101929092529183528051606081018252978216885285810151821688880152945187860152908501959095528051805181860151908716700100000000000000000000000000000000918816820217600355908401516004559084015180519481015194861694909516029290921760055591909101516006555160015550565b610a3382826001610ae8565b6002818154811061171e57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff1660028111156117a3576117a361245d565b146117da576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600287815481106117ef576117ef612748565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b905061184e7f0000000000000000000000000000000000000000000000000000000000000000600161281c565b6118ea826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161461192b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156119ae5761194f836fffffffffffffffffffffffffffffffff16612212565b67ffffffffffffffff16156119825761197961196c6001866129c6565b865463ffffffff166122b8565b600101546119a4565b7f00000000000000000000000000000000000000000000000000000000000000005b91508490506119c8565b846001015491506119c584600161196c91906129f7565b90505b600882901b60088a8a6040516119df929190612a2b565b6040518091039020901b14611a20576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611a869493929190612a84565b6020604051808303816000875af1158015611aa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac9919061284b565b600284810154929091149250600091611b74906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611c10886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611c1a9190612ab6565b611c249190612b06565b67ffffffffffffffff161590508115158103611c6c576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611cfe610ada565b9050909192565b6000805468010000000000000000900460ff166002811115611d2957611d2961245d565b14611d60576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611d7557611d75612748565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611de590700100000000000000000000000000000000900467ffffffffffffffff1642612834565b6002830154611e159190700100000000000000000000000000000000900460401c67ffffffffffffffff1661281c565b11611e4c576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260086020526040902082158015611e6a575060095460ff165b15611ea1576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611eaf57508215155b15611ee6576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611fb4576000838281548110611f0757611f07612748565b6000918252602080832090910154808352600890915260409091205490915015611f5d576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611f7257611f72612748565b600091825260209091206003909102018054909150640100000000900460ff16611fa157600193505050611fb4565b505080611fad90612b2d565b9050611eea565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600860205260408120611ffd91612401565b836000036108bd57600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550505050565b60608160000361207957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156120a3578061208d81612b2d565b915061209c9050600a83612b65565b915061207d565b60008167ffffffffffffffff8111156120be576120be612864565b6040519080825280601f01601f1916602001820160405280156120e8576020820181803683370190505b5090505b841561216b576120fd600183612834565b915061210a600a86612b79565b61211590603061281c565b60f81b81838151811061212a5761212a612748565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612164600a86612b65565b94506120ec565b949350505050565b606060006121aa84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900361281c565b90508267ffffffffffffffff1667ffffffffffffffff8111156121cf576121cf612864565b6040519080825280601f01601f1916602001820160405280156121f9576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60008061229f837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806122d6846fffffffffffffffffffffffffffffffff16612355565b9050600283815481106122eb576122eb612748565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461234e57815460028054909163ffffffff1690811061233957612339612748565b906000526020600020906003020191506122fc565b5092915050565b600081196001830116816123e9827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b508054600082559060005260206000209081019061241f9190612422565b50565b5b808211156124375760008155600101612423565b5090565b6000806040838503121561244e57600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106124c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60005b838110156124e85781810151838201526020016124d0565b838111156108bd5750506000910152565b600081518084526125118160208601602086016124cd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061255660208301846124f9565b9392505050565b82516fffffffffffffffffffffffffffffffff90811682526020808501518216818401526040808601518185015284518316606085015290840151909116608083015282015160a082015260c08101612556565b803580151581146125c157600080fd5b919050565b6000806000606084860312156125db57600080fd5b83359250602084013591506125f2604085016125b1565b90509250925092565b60006020828403121561260d57600080fd5b5035919050565b60008083601f84011261262657600080fd5b50813567ffffffffffffffff81111561263e57600080fd5b60208301915083602082850101111561265657600080fd5b9250929050565b6000806000806000806080878903121561267657600080fd5b86359550612686602088016125b1565b9450604087013567ffffffffffffffff808211156126a357600080fd5b6126af8a838b01612614565b909650945060608901359150808211156126c857600080fd5b506126d589828a01612614565b979a9699509497509295939492505050565b60ff8416815282602082015260606040820152600061270960608301846124f9565b95945050505050565b60006020828403121561272457600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461255657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600084516127898184602089016124cd565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516127c5816001850160208a016124cd565b600192019182015283516127e08160028401602088016124cd565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561282f5761282f6127ed565b500190565b600082821015612846576128466127ed565b500390565b60006020828403121561285d57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff811681146125c157600080fd5b6000606082840312156128c557600080fd5b6040516060810181811067ffffffffffffffff8211171561290f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528251815261292260208401612893565b602082015261293360408401612893565b60408201529392505050565b60006040828403121561295157600080fd5b6040516040810167ffffffffffffffff828210818311171561299c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b81604052845183526020850151915080821682146129b957600080fd5b5060208201529392505050565b60006fffffffffffffffffffffffffffffffff838116908316818110156129ef576129ef6127ed565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115612a2257612a226127ed565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612a98604083018688612a3b565b8281036020840152612aab818587612a3b565b979650505050505050565b600067ffffffffffffffff838116908316818110156129ef576129ef6127ed565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680612b2157612b21612ad7565b92169190910692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b5e57612b5e6127ed565b5060010190565b600082612b7457612b74612ad7565b500490565b600082612b8857612b88612ad7565b50069056fea164736f6c634300080f000a" var FaultDisputeGameDeployedBin = "0x6080604052600436106101b75760003560e01c80638129fc1c116100ec578063c31b29ce1161008a578063cf09e0d011610064578063cf09e0d0146106c0578063d8cc1a3c146106e1578063fa24f74314610701578063fdffbb281461072557600080fd5b8063c31b29ce146105fc578063c55cd0c714610649578063c6f0308c1461065c57600080fd5b806392931298116100c65780639293129814610519578063bbdc02db1461054d578063bcef3b551461058b578063c0c3a092146105c857600080fd5b80638129fc1c146104af5780638980e0cc146104c45780638b85902b146104d957600080fd5b80634778efe81161015957806355ef20e61161013357806355ef20e6146103e1578063609d333414610471578063632247ea146104865780636361506d1461049957600080fd5b80634778efe814610323578063529184c91461035757806354fd4d501461038b57600080fd5b80632810e1d6116101955780632810e1d61461025c578063298c90051461027157806335fef567146102b1578063363cc427146102c457600080fd5b80631e27052a146101bc578063200d2ed2146101de578063266198f91461021a575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461228f565b610738565b005b3480156101ea57600080fd5b506000546102049068010000000000000000900460ff1681565b60405161021191906122e0565b60405180910390f35b34801561022657600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610211565b34801561026857600080fd5b506102046108f7565b34801561027d57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561024e565b6101dc6102bf36600461228f565b610a5b565b3480156102d057600080fd5b506000546102fe906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b34801561032f57600080fd5b5061024e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561036357600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039757600080fd5b506103d46040518060400160405280600681526020017f302e302e3130000000000000000000000000000000000000000000000000000081525081565b604051610211919061238c565b3480156103ed57600080fd5b5060408051606080820183526003546fffffffffffffffffffffffffffffffff808216845270010000000000000000000000000000000091829004811660208086019190915260045485870152855193840186526005548083168552929092041690820152600654928101929092526104639182565b6040516102119291906123a6565b34801561047d57600080fd5b506103d4610a6b565b6101dc61049436600461240f565b610a79565b3480156104a557600080fd5b5061024e60015481565b3480156104bb57600080fd5b506101dc61108f565b3480156104d057600080fd5b5060025461024e565b3480156104e557600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561024e565b34801561052557600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055957600080fd5b5060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610211565b34801561059757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561024e565b3480156105d457600080fd5b506102fe7f000000000000000000000000000000000000000000000000000000000000000081565b34801561060857600080fd5b506106307f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610211565b6101dc61065736600461228f565b611693565b34801561066857600080fd5b5061067c610677366004612444565b61169f565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610211565b3480156106cc57600080fd5b506000546106309067ffffffffffffffff1681565b3480156106ed57600080fd5b506101dc6106fc3660046124a6565b611710565b34801561070d57600080fd5b50610716611c39565b60405161021193929190612530565b6101dc610733366004612444565b611c96565b6000805468010000000000000000900460ff16600281111561075c5761075c6122b1565b14610793576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610800573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610824919061255b565b7f9a1f5e7f00000000000000000000000000000000000000000000000000000000601c81905260208590529091506000846001811461088b5760028114610895576003811461089f57600481146108a957600581146108b95763ff137e656000526004601cfd5b60015491506108c0565b60045491506108c0565b60065491506108c0565b60035460801c60c01b91506108c0565b4660c01b91505b50604052600160038511811b6005031b60605260808390526000806084601c82865af16108f1573d6000803e3d6000fd5b50505050565b60008060005468010000000000000000900460ff16600281111561091d5761091d6122b1565b14610954576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095460ff16610990576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026000815481106109a4576109a4612591565b6000918252602090912060039091020154640100000000900460ff166109cb5760026109ce565b60015b6000805491925082917fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1668010000000000000000836002811115610a1557610a156122b1565b021790556002811115610a2a57610a2a6122b1565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b905090565b610a6782826000610a79565b5050565b6060610a5660206040611fc7565b6000805468010000000000000000900460ff166002811115610a9d57610a9d6122b1565b14610ad4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610ae0575080155b15610b17576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b2c57610b2c612591565b600091825260208083206040805160a081018252600394909402909101805463ffffffff808216865264010000000090910460ff16151593850193909352600181015491840191909152600201546fffffffffffffffffffffffffffffffff80821660608501819052700100000000000000000000000000000000909204166080840152919350610bc09190859061205e16565b90507f0000000000000000000000000000000000000000000000000000000000000000610c7f826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610cc1576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610d21576002836000015163ffffffff1681548110610cf057610cf0612591565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610d5a846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610d6e91906125ef565b610d789190612607565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610deb576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42176000888152608086901b6fffffffffffffffffffffffffffffffff8b1617602052604081209192509060008181526007602052604090205490915060ff1615610e69576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260076020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581529281018d81526fffffffffffffffffffffffffffffffff808c16606084019081528982166080850190815260028054808801825599819052945160039099027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace8101805498511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009099169a909916999099179690961790965590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf8701559351925184167001000000000000000000000000000000000292909316919091177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad09093019290925580548b908110610fe157610fe1612591565b6000918252602080832060039092029091018054931515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909416939093179092558a815260089091526040902060025461104590600190612607565b8154600181018355600092835260208320015560405133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560001a60018114806110cf575060ff81166002145b611135576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335600482015260240160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016111ba7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff9081169091528254600181810185556000948552602080862085516003909402018054918601511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921663ffffffff909416939093171782556040840151908201556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016637f0064206112e360207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161130191815260200190565b602060405180830381865afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611342919061261e565b9050600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a25ae55761138d600185612607565b6040518263ffffffff1660e01b81526004016113ab91815260200190565b606060405180830381865afa1580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec9190612686565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a19190612686565b9050600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166399d548aa367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001356040518263ffffffff1660e01b815260040161152d91815260200190565b6040805180830381865afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190612712565b905081602001516fffffffffffffffffffffffffffffffff16816020015167ffffffffffffffff16116115cc576040517f13809ba500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a0810182529081908101806115e7600189612607565b6fffffffffffffffffffffffffffffffff908116825260408881015182166020808501919091529851928101929092529183528051606081018252978216885285810151821688880152945187860152908501959095528051805181860151908716700100000000000000000000000000000000918816820217600355908401516004559084015180519481015194861694909516029290921760055591909101516006555160015550565b610a6782826001610a79565b600281815481106116af57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff166002811115611734576117346122b1565b1461176b576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002878154811061178057611780612591565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506117df7f000000000000000000000000000000000000000000000000000000000000000060016125ef565b61187b826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146118bc576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561193f576118e0836fffffffffffffffffffffffffffffffff16612066565b67ffffffffffffffff16156119135761190a6118fd600186612799565b865463ffffffff1661210c565b60010154611935565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611959565b846001015491506119568460016118fd91906127ca565b90505b600882901b60088a8a6040516119709291906127fe565b6040518091039020901b146119b1576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611a179493929190612857565b6020604051808303816000875af1158015611a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5a919061261e565b600284810154929091149250600091611b05906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611ba1886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611bab9190612889565b611bb591906128aa565b67ffffffffffffffff161590508115158103611bfd576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611c8f610a6b565b9050909192565b6000805468010000000000000000900460ff166002811115611cba57611cba6122b1565b14611cf1576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611d0657611d06612591565b60009182526020909120600260039092020190810154909150677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1690611d7690700100000000000000000000000000000000900467ffffffffffffffff1642612607565b6002830154611da69190700100000000000000000000000000000000900460401c67ffffffffffffffff166125ef565b11611ddd576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260086020526040902082158015611dfb575060095460ff165b15611e32576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054158015611e4057508215155b15611e77576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8254811015611f45576000838281548110611e9857611e98612591565b6000918252602080832090910154808352600890915260409091205490915015611eee576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028281548110611f0357611f03612591565b600091825260209091206003909102018054909150640100000000900460ff16611f3257600193505050611f45565b505080611f3e906128f8565b9050611e7b565b5082547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16640100000000821515021783556000848152600860205260408120611f8e91612255565b836000036108f157600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550505050565b60606000611ffe84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036125ef565b90508267ffffffffffffffff1667ffffffffffffffff81111561202357612023612637565b6040519080825280601f01601f19166020018201604052801561204d576020820181803683370190505b509150828160208401375092915050565b151760011b90565b6000806120f3837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008061212a846fffffffffffffffffffffffffffffffff166121a9565b90506002838154811061213f5761213f612591565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff8281169116146121a257815460028054909163ffffffff1690811061218d5761218d612591565b90600052602060002090600302019150612150565b5092915050565b6000811960018301168161223d827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b50805460008255906000526020600020908101906122739190612276565b50565b5b8082111561228b5760008155600101612277565b5090565b600080604083850312156122a257600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061231b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000815180845260005b818110156123475760208185018101518683018201520161232b565b81811115612359576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061239f6020830184612321565b9392505050565b82516fffffffffffffffffffffffffffffffff90811682526020808501518216818401526040808601518185015284518316606085015290840151909116608083015282015160a082015260c0810161239f565b8035801515811461240a57600080fd5b919050565b60008060006060848603121561242457600080fd5b833592506020840135915061243b604085016123fa565b90509250925092565b60006020828403121561245657600080fd5b5035919050565b60008083601f84011261246f57600080fd5b50813567ffffffffffffffff81111561248757600080fd5b60208301915083602082850101111561249f57600080fd5b9250929050565b600080600080600080608087890312156124bf57600080fd5b863595506124cf602088016123fa565b9450604087013567ffffffffffffffff808211156124ec57600080fd5b6124f88a838b0161245d565b9096509450606089013591508082111561251157600080fd5b5061251e89828a0161245d565b979a9699509497509295939492505050565b60ff841681528260208201526060604082015260006125526060830184612321565b95945050505050565b60006020828403121561256d57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461239f57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115612602576126026125c0565b500190565b600082821015612619576126196125c0565b500390565b60006020828403121561263057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461240a57600080fd5b60006060828403121561269857600080fd5b6040516060810181811067ffffffffffffffff821117156126e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526126f560208401612666565b602082015261270660408401612666565b60408201529392505050565b60006040828403121561272457600080fd5b6040516040810167ffffffffffffffff828210818311171561276f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b816040528451835260208501519150808216821461278c57600080fd5b5060208201529392505050565b60006fffffffffffffffffffffffffffffffff838116908316818110156127c2576127c26125c0565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156127f5576127f56125c0565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061286b60408301868861280e565b828103602084015261287e81858761280e565b979650505050505050565b600067ffffffffffffffff838116908316818110156127c2576127c26125c0565b600067ffffffffffffffff808416806128ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612929576129296125c0565b506001019056fea164736f6c634300080f000a"
func init() { func init() {
if err := json.Unmarshal([]byte(FaultDisputeGameStorageLayoutJSON), FaultDisputeGameStorageLayout); err != nil { if err := json.Unmarshal([]byte(FaultDisputeGameStorageLayoutJSON), FaultDisputeGameStorageLayout); err != nil {
......
...@@ -15,7 +15,7 @@ var MIPSStorageLayout = new(solc.StorageLayout) ...@@ -15,7 +15,7 @@ var MIPSStorageLayout = new(solc.StorageLayout)
var MIPSDeployedBin = "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063155633fe146100465780637dc0d1d01461006b578063f8e0cb96146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d26565b6100d0565b604051908152602001610062565b60006100da611c53565b608081146100e757600080fd5b604051610600146100f757600080fd5b6064861461010457600080fd5b610184841461011257600080fd5b8535608052602086013560a052604086013560e090811c60c09081526044880135821c82526048880135821c61010052604c880135821c610120526050880135821c61014052605488013590911c61016052605887013560f890811c610180526059880135901c6101a052605a870135901c6101c0526102006101e0819052606287019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d3610619565b915050610611565b6101408101805160010167ffffffffffffffff16905260608101516000906102039082610735565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff16826107f1565b945050505050610611565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611d92565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611d92565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff1660106108eb565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611d92565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f68587848761095e565b975050505050505050610611565b63ffffffff6000602087831610610469576104248861ffff1660106108eb565b9095019463fffffffc861661043a816001610735565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b6e565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058a578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b896107f1565b9b505050505050505050505050610611565b8063ffffffff16600a03610525576104f3858963ffffffff8a16156112f2565b8063ffffffff16600b03610546576104f3858963ffffffff8a1615156112f2565b8063ffffffff16600c0361055c576104f36113d8565b60108163ffffffff16101580156105795750601c8163ffffffff16105b1561058a576104f38189898861190c565b8863ffffffff1660381480156105a5575063ffffffff861615155b156105da5760018b61016001518763ffffffff16602081106105c9576105c9611d92565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f7576105f784600184611b06565b610603858360016112f2565b9b5050505050505050505050505b949350505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b60208110156106b857601c8601518452602090950194600490930192600101610694565b506000835283830384a06000945080600181146106d85760039550610700565b8280156106f057600181146106f957600296506106fe565b600096506106fe565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b60008061074183611baa565b9050600384161561075157600080fd5b6020810190358460051c8160005b601b8110156107b75760208501943583821c6001168015610787576001811461079c576107ad565b600084815260208390526040902093506107ad565b600082815260208590526040902093505b505060010161075f565b5060805191508181146107d257630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b60006107fb611c53565b60809050806060015160040163ffffffff16816080015163ffffffff1614610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108da57806008018261016001518663ffffffff16602081106108c9576108c9611d92565b63ffffffff90921660209290920201525b6108e2610619565b95945050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b018261094857600061094a565b815b90861663ffffffff16179250505092915050565b6000610968611c53565b608090506000816060015160040163ffffffff16826080015163ffffffff16146109ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f74000000000000000000000000604482015260640161087b565b8663ffffffff1660041480610a0957508663ffffffff166005145b15610a855760008261016001518663ffffffff1660208110610a2d57610a2d611d92565b602002015190508063ffffffff168563ffffffff16148015610a5557508763ffffffff166004145b80610a7d57508063ffffffff168563ffffffff1614158015610a7d57508763ffffffff166005145b915050610b02565b8663ffffffff16600603610aa25760008460030b13159050610b02565b8663ffffffff16600703610abe5760008460030b139050610b02565b8663ffffffff16600103610b0257601f601087901c166000819003610ae75760008560030b1291505b8063ffffffff16600103610b005760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b48576002610b2d8861ffff1660106108eb565b63ffffffff90811690911b8201600401166080840152610b5a565b60808301805160040163ffffffff1690525b610b62610619565b98975050505050505050565b6000603f601a86901c16801580610b9d575060088163ffffffff1610158015610b9d5750600f8163ffffffff16105b15610ff357603f86168160088114610be45760098114610bed57600a8114610bf657600b8114610bff57600c8114610c0857600d8114610c1157600e8114610c1a57610c1f565b60209150610c1f565b60219150610c1f565b602a9150610c1f565b602b9150610c1f565b60249150610c1f565b60259150610c1f565b602691505b508063ffffffff16600003610c465750505063ffffffff8216601f600686901c161b610611565b8063ffffffff16600203610c6c5750505063ffffffff8216601f600686901c161c610611565b8063ffffffff16600303610ca257601f600688901c16610c9863ffffffff8716821c60208390036108eb565b9350505050610611565b8063ffffffff16600403610cc45750505063ffffffff8216601f84161b610611565b8063ffffffff16600603610ce65750505063ffffffff8216601f84161c610611565b8063ffffffff16600703610d1957610d108663ffffffff168663ffffffff16901c876020036108eb565b92505050610611565b8063ffffffff16600803610d31578592505050610611565b8063ffffffff16600903610d49578592505050610611565b8063ffffffff16600a03610d61578592505050610611565b8063ffffffff16600b03610d79578592505050610611565b8063ffffffff16600c03610d91578592505050610611565b8063ffffffff16600f03610da9578592505050610611565b8063ffffffff16601003610dc1578592505050610611565b8063ffffffff16601103610dd9578592505050610611565b8063ffffffff16601203610df1578592505050610611565b8063ffffffff16601303610e09578592505050610611565b8063ffffffff16601803610e21578592505050610611565b8063ffffffff16601903610e39578592505050610611565b8063ffffffff16601a03610e51578592505050610611565b8063ffffffff16601b03610e69578592505050610611565b8063ffffffff16602003610e8257505050828201610611565b8063ffffffff16602103610e9b57505050828201610611565b8063ffffffff16602203610eb457505050818303610611565b8063ffffffff16602303610ecd57505050818303610611565b8063ffffffff16602403610ee657505050828216610611565b8063ffffffff16602503610eff57505050828217610611565b8063ffffffff16602603610f1857505050828218610611565b8063ffffffff16602703610f325750505082821719610611565b8063ffffffff16602a03610f63578460030b8660030b12610f54576000610f57565b60015b60ff1692505050610611565b8063ffffffff16602b03610f8b578463ffffffff168663ffffffff1610610f54576000610f57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e00000000000000000000000000604482015260640161087b565b50610f8b565b8063ffffffff16601c0361107757603f8616600281900361101957505050828202610611565b8063ffffffff166020148061103457508063ffffffff166021145b15610fed578063ffffffff1660200361104b579419945b60005b638000000087161561106d576401fffffffe600197881b16960161104e565b9250610611915050565b8063ffffffff16600f0361109957505065ffffffff0000601083901b16610611565b8063ffffffff166020036110cd576101d38560031660080260180363ffffffff168463ffffffff16901c60ff1660086108eb565b8063ffffffff16602103611102576101d38560021660080260100363ffffffff168463ffffffff16901c61ffff1660106108eb565b8063ffffffff1660220361113157505063ffffffff60086003851602811681811b198416918316901b17610611565b8063ffffffff166023036111485782915050610611565b8063ffffffff1660240361117a578460031660080260180363ffffffff168363ffffffff16901c60ff16915050610611565b8063ffffffff166025036111ad578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050610611565b8063ffffffff166026036111df57505063ffffffff60086003851602601803811681811c198416918316901c17610611565b8063ffffffff1660280361121557505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17610611565b8063ffffffff1660290361124c57505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17610611565b8063ffffffff16602a0361127b57505063ffffffff60086003851602811681811c198316918416901c17610611565b8063ffffffff16602b036112925783915050610611565b8063ffffffff16602e036112c457505063ffffffff60086003851602601803811681811b198316918416901b17610611565b8063ffffffff166030036112db5782915050610611565b8063ffffffff16603803610f8b5783915050610611565b60006112fc611c53565b506080602063ffffffff86161061136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c6964207265676973746572000000000000000000000000000000000000604482015260640161087b565b63ffffffff8516158015906113815750825b156113b557838161016001518663ffffffff16602081106113a4576113a4611d92565b63ffffffff90921660209290920201525b60808101805163ffffffff808216606085015260049091011690526108e2610619565b60006113e2611c53565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa0361145c5781610fff81161561142b57610fff811661100003015b8363ffffffff166000036114525760e08801805163ffffffff838201169091529550611456565b8395505b506118cb565b8563ffffffff16610fcd0361147757634000000094506118cb565b8563ffffffff166110180361148f57600194506118cb565b8563ffffffff16611096036114c457600161012088015260ff83166101008801526114b8610619565b97505050505050505090565b8563ffffffff16610fa30361172e5763ffffffff8316156118cb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016116e857600061151f8363fffffffc166001610735565b60208901519091508060001a60010361158c5761158981600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b90505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116519190611dc1565b91509150600386168060040382811015611669578092505b5081861015611676578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116cd8663fffffffc16600186611b06565b60408b018051820163ffffffff169052975061172992505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff84160161171d578094506118cb565b63ffffffff9450600993505b6118cb565b8563ffffffff16610fa40361181f5763ffffffff831660011480611758575063ffffffff83166002145b80611769575063ffffffff83166004145b15611776578094506118cb565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff84160161171d5760006117b68363fffffffc166001610735565b602089015190915060038416600403838110156117d1578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118cb565b8563ffffffff16610fd7036118cb578163ffffffff166003036118bf5763ffffffff83161580611855575063ffffffff83166005145b80611866575063ffffffff83166003145b1561187457600094506118cb565b63ffffffff83166001148061188f575063ffffffff83166002145b806118a0575063ffffffff83166006145b806118b1575063ffffffff83166004145b1561171d57600194506118cb565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114b8610619565b6000611916611c53565b506080600063ffffffff8716601003611934575060c0810151611a9d565b8663ffffffff166011036119535763ffffffff861660c0830152611a9d565b8663ffffffff1660120361196c575060a0810151611a9d565b8663ffffffff1660130361198b5763ffffffff861660a0830152611a9d565b8663ffffffff166018036119bf5763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611a9d565b8663ffffffff166019036119f05763ffffffff86811681871602602081901c821660c08501521660a0830152611a9d565b8663ffffffff16601a03611a46578460030b8660030b81611a1357611a13611de5565b0763ffffffff1660c0830152600385810b9087900b81611a3557611a35611de5565b0563ffffffff1660a0830152611a9d565b8663ffffffff16601b03611a9d578463ffffffff168663ffffffff1681611a6f57611a6f611de5565b0663ffffffff90811660c084015285811690871681611a9057611a90611de5565b0463ffffffff1660a08301525b63ffffffff841615611ad857808261016001518563ffffffff1660208110611ac757611ac7611d92565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611afb610619565b979650505050505050565b6000611b1183611baa565b90506003841615611b2157600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611b9f5760208401933582821c6001168015611b6f5760018114611b8457611b95565b60008581526020839052604090209450611b95565b600082815260208690526040902094505b5050600101611b47565b505060805250505050565b60ff811661038002610184810190369061050401811015611c4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f6174610000000000000000000000000000000000000000000000000000000000606482015260840161087b565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cb9611cbe565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611cef57600080fd5b50813567ffffffffffffffff811115611d0757600080fd5b602083019150836020828501011115611d1f57600080fd5b9250929050565b60008060008060408587031215611d3c57600080fd5b843567ffffffffffffffff80821115611d5457600080fd5b611d6088838901611cdd565b90965094506020870135915080821115611d7957600080fd5b50611d8687828801611cdd565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611dd457600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a" var MIPSDeployedBin = "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063155633fe146100465780637dc0d1d01461006b578063f8e0cb96146100af575b600080fd5b610051634000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610062565b6100c26100bd366004611d26565b6100d0565b604051908152602001610062565b60006100da611c53565b608081146100e757600080fd5b604051610600146100f757600080fd5b6064861461010457600080fd5b610184841461011257600080fd5b8535608052602086013560a052604086013560e090811c60c09081526044880135821c82526048880135821c61010052604c880135821c610120526050880135821c61014052605488013590911c61016052605887013560f890811c610180526059880135901c6101a052605a870135901c6101c0526102006101e0819052606287019060005b60208110156101bd57823560e01c8252600490920191602090910190600101610199565b505050806101200151156101db576101d3610619565b915050610611565b6101408101805160010167ffffffffffffffff16905260608101516000906102039082610735565b9050603f601a82901c16600281148061022257508063ffffffff166003145b156102775760006002836303ffffff1663ffffffff16901b846080015163f00000001617905061026c8263ffffffff1660021461026057601f610263565b60005b60ff16826107f1565b945050505050610611565b6101608301516000908190601f601086901c81169190601587901c16602081106102a3576102a3611d92565b602002015192508063ffffffff851615806102c457508463ffffffff16601c145b156102fb578661016001518263ffffffff16602081106102e6576102e6611d92565b6020020151925050601f600b86901c166103b7565b60208563ffffffff16101561035d578463ffffffff16600c148061032557508463ffffffff16600d145b8061033657508463ffffffff16600e145b15610347578561ffff1692506103b7565b6103568661ffff1660106108eb565b92506103b7565b60288563ffffffff1610158061037957508463ffffffff166022145b8061038a57508463ffffffff166026145b156103b7578661016001518263ffffffff16602081106103ac576103ac611d92565b602002015192508190505b60048563ffffffff16101580156103d4575060088563ffffffff16105b806103e557508463ffffffff166001145b15610404576103f68587848761095e565b975050505050505050610611565b63ffffffff6000602087831610610469576104248861ffff1660106108eb565b9095019463fffffffc861661043a816001610735565b915060288863ffffffff161015801561045a57508763ffffffff16603014155b1561046757809250600093505b505b600061047789888885610b6e565b63ffffffff9081169150603f8a1690891615801561049c575060088163ffffffff1610155b80156104ae5750601c8163ffffffff16105b1561058a578063ffffffff16600814806104ce57508063ffffffff166009145b15610505576104f38163ffffffff166008146104ea57856104ed565b60005b896107f1565b9b505050505050505050505050610611565b8063ffffffff16600a03610525576104f3858963ffffffff8a16156112f2565b8063ffffffff16600b03610546576104f3858963ffffffff8a1615156112f2565b8063ffffffff16600c0361055c576104f36113d8565b60108163ffffffff16101580156105795750601c8163ffffffff16105b1561058a576104f38189898861190c565b8863ffffffff1660381480156105a5575063ffffffff861615155b156105da5760018b61016001518763ffffffff16602081106105c9576105c9611d92565b63ffffffff90921660209290920201525b8363ffffffff1663ffffffff146105f7576105f784600184611b06565b610603858360016112f2565b9b5050505050505050505050505b949350505050565b60408051608051815260a051602082015260dc519181019190915260fc51604482015261011c51604882015261013c51604c82015261015c51605082015261017c5160548201526101805161019f5160588301526101a0516101bf5160598401526101d851605a840152600092610200929091606283019190855b60208110156106b857601c8601518452602090950194600490930192600101610694565b506000835283830384a06000945080600181146106d85760039550610700565b8280156106f057600181146106f957600296506106fe565b600096506106fe565b600196505b505b50505081900390207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f89190911b17919050565b60008061074183611baa565b9050600384161561075157600080fd5b6020810190358460051c8160005b601b8110156107b75760208501943583821c6001168015610787576001811461079c576107ad565b600084815260208390526040902093506107ad565b600082815260208590526040902093505b505060010161075f565b5060805191508181146107d257630badf00d60005260206000fd5b5050601f94909416601c0360031b9390931c63ffffffff169392505050565b60006107fb611c53565b60809050806060015160040163ffffffff16816080015163ffffffff1614610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6a756d7020696e2064656c617920736c6f74000000000000000000000000000060448201526064015b60405180910390fd5b60608101805160808301805163ffffffff9081169093528583169052908516156108da57806008018261016001518663ffffffff16602081106108c9576108c9611d92565b63ffffffff90921660209290920201525b6108e2610619565b95945050505050565b600063ffffffff8381167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80850183169190911c821615159160016020869003821681901b830191861691821b92911b018261094857600061094a565b815b90861663ffffffff16179250505092915050565b6000610968611c53565b608090506000816060015160040163ffffffff16826080015163ffffffff16146109ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6272616e636820696e2064656c617920736c6f74000000000000000000000000604482015260640161087b565b8663ffffffff1660041480610a0957508663ffffffff166005145b15610a855760008261016001518663ffffffff1660208110610a2d57610a2d611d92565b602002015190508063ffffffff168563ffffffff16148015610a5557508763ffffffff166004145b80610a7d57508063ffffffff168563ffffffff1614158015610a7d57508763ffffffff166005145b915050610b02565b8663ffffffff16600603610aa25760008460030b13159050610b02565b8663ffffffff16600703610abe5760008460030b139050610b02565b8663ffffffff16600103610b0257601f601087901c166000819003610ae75760008560030b1291505b8063ffffffff16600103610b005760008560030b121591505b505b606082018051608084015163ffffffff169091528115610b48576002610b2d8861ffff1660106108eb565b63ffffffff90811690911b8201600401166080840152610b5a565b60808301805160040163ffffffff1690525b610b62610619565b98975050505050505050565b6000603f601a86901c16801580610b9d575060088163ffffffff1610158015610b9d5750600f8163ffffffff16105b15610ff357603f86168160088114610be45760098114610bed57600a8114610bf657600b8114610bff57600c8114610c0857600d8114610c1157600e8114610c1a57610c1f565b60209150610c1f565b60219150610c1f565b602a9150610c1f565b602b9150610c1f565b60249150610c1f565b60259150610c1f565b602691505b508063ffffffff16600003610c465750505063ffffffff8216601f600686901c161b610611565b8063ffffffff16600203610c6c5750505063ffffffff8216601f600686901c161c610611565b8063ffffffff16600303610ca257601f600688901c16610c9863ffffffff8716821c60208390036108eb565b9350505050610611565b8063ffffffff16600403610cc45750505063ffffffff8216601f84161b610611565b8063ffffffff16600603610ce65750505063ffffffff8216601f84161c610611565b8063ffffffff16600703610d1957610d108663ffffffff168663ffffffff16901c876020036108eb565b92505050610611565b8063ffffffff16600803610d31578592505050610611565b8063ffffffff16600903610d49578592505050610611565b8063ffffffff16600a03610d61578592505050610611565b8063ffffffff16600b03610d79578592505050610611565b8063ffffffff16600c03610d91578592505050610611565b8063ffffffff16600f03610da9578592505050610611565b8063ffffffff16601003610dc1578592505050610611565b8063ffffffff16601103610dd9578592505050610611565b8063ffffffff16601203610df1578592505050610611565b8063ffffffff16601303610e09578592505050610611565b8063ffffffff16601803610e21578592505050610611565b8063ffffffff16601903610e39578592505050610611565b8063ffffffff16601a03610e51578592505050610611565b8063ffffffff16601b03610e69578592505050610611565b8063ffffffff16602003610e8257505050828201610611565b8063ffffffff16602103610e9b57505050828201610611565b8063ffffffff16602203610eb457505050818303610611565b8063ffffffff16602303610ecd57505050818303610611565b8063ffffffff16602403610ee657505050828216610611565b8063ffffffff16602503610eff57505050828217610611565b8063ffffffff16602603610f1857505050828218610611565b8063ffffffff16602703610f325750505082821719610611565b8063ffffffff16602a03610f63578460030b8660030b12610f54576000610f57565b60015b60ff1692505050610611565b8063ffffffff16602b03610f8b578463ffffffff168663ffffffff1610610f54576000610f57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f696e76616c696420696e737472756374696f6e00000000000000000000000000604482015260640161087b565b50610f8b565b8063ffffffff16601c0361107757603f8616600281900361101957505050828202610611565b8063ffffffff166020148061103457508063ffffffff166021145b15610fed578063ffffffff1660200361104b579419945b60005b638000000087161561106d576401fffffffe600197881b16960161104e565b9250610611915050565b8063ffffffff16600f0361109957505065ffffffff0000601083901b16610611565b8063ffffffff166020036110cd576101d38560031660080260180363ffffffff168463ffffffff16901c60ff1660086108eb565b8063ffffffff16602103611102576101d38560021660080260100363ffffffff168463ffffffff16901c61ffff1660106108eb565b8063ffffffff1660220361113157505063ffffffff60086003851602811681811b198416918316901b17610611565b8063ffffffff166023036111485782915050610611565b8063ffffffff1660240361117a578460031660080260180363ffffffff168363ffffffff16901c60ff16915050610611565b8063ffffffff166025036111ad578460021660080260100363ffffffff168363ffffffff16901c61ffff16915050610611565b8063ffffffff166026036111df57505063ffffffff60086003851602601803811681811c198416918316901c17610611565b8063ffffffff1660280361121557505060ff63ffffffff60086003861602601803811682811b9091188316918416901b17610611565b8063ffffffff1660290361124c57505061ffff63ffffffff60086002861602601003811682811b9091188316918416901b17610611565b8063ffffffff16602a0361127b57505063ffffffff60086003851602811681811c198316918416901c17610611565b8063ffffffff16602b036112925783915050610611565b8063ffffffff16602e036112c457505063ffffffff60086003851602601803811681811b198316918416901b17610611565b8063ffffffff166030036112db5782915050610611565b8063ffffffff16603803610f8b5783915050610611565b60006112fc611c53565b506080602063ffffffff86161061136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f76616c6964207265676973746572000000000000000000000000000000000000604482015260640161087b565b63ffffffff8516158015906113815750825b156113b557838161016001518663ffffffff16602081106113a4576113a4611d92565b63ffffffff90921660209290920201525b60808101805163ffffffff808216606085015260049091011690526108e2610619565b60006113e2611c53565b506101e051604081015160808083015160a084015160c09094015191936000928392919063ffffffff8616610ffa0361145c5781610fff81161561142b57610fff811661100003015b8363ffffffff166000036114525760e08801805163ffffffff838201169091529550611456565b8395505b506118cb565b8563ffffffff16610fcd0361147757634000000094506118cb565b8563ffffffff166110180361148f57600194506118cb565b8563ffffffff16611096036114c457600161012088015260ff83166101008801526114b8610619565b97505050505050505090565b8563ffffffff16610fa30361172e5763ffffffff8316156118cb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb63ffffffff8416016116e857600061151f8363fffffffc166001610735565b60208901519091508060001a60010361158c5761158981600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b90505b6040808a015190517fe03110e10000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff9091166024820152600090819073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e03110e1906044016040805180830381865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116519190611dc1565b91509150600386168060040382811015611669578092505b5081861015611676578591505b8260088302610100031c9250826008828460040303021b9250600180600883600403021b036001806008858560040303021b039150811981169050838119871617955050506116cd8663fffffffc16600186611b06565b60408b018051820163ffffffff169052975061172992505050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd63ffffffff84160161171d578094506118cb565b63ffffffff9450600993505b6118cb565b8563ffffffff16610fa40361181f5763ffffffff831660011480611758575063ffffffff83166002145b80611769575063ffffffff83166004145b15611776578094506118cb565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa63ffffffff84160161171d5760006117b68363fffffffc166001610735565b602089015190915060038416600403838110156117d1578093505b83900360089081029290921c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600193850293841b0116911b176020880152600060408801529350836118cb565b8563ffffffff16610fd7036118cb578163ffffffff166003036118bf5763ffffffff83161580611855575063ffffffff83166005145b80611866575063ffffffff83166003145b1561187457600094506118cb565b63ffffffff83166001148061188f575063ffffffff83166002145b806118a0575063ffffffff83166006145b806118b1575063ffffffff83166004145b1561171d57600194506118cb565b63ffffffff9450601693505b6101608701805163ffffffff808816604090920191909152905185821660e09091015260808801805180831660608b015260040190911690526114b8610619565b6000611916611c53565b506080600063ffffffff8716601003611934575060c0810151611a9d565b8663ffffffff166011036119535763ffffffff861660c0830152611a9d565b8663ffffffff1660120361196c575060a0810151611a9d565b8663ffffffff1660130361198b5763ffffffff861660a0830152611a9d565b8663ffffffff166018036119bf5763ffffffff600387810b9087900b02602081901c821660c08501521660a0830152611a9d565b8663ffffffff166019036119f05763ffffffff86811681871602602081901c821660c08501521660a0830152611a9d565b8663ffffffff16601a03611a46578460030b8660030b81611a1357611a13611de5565b0763ffffffff1660c0830152600385810b9087900b81611a3557611a35611de5565b0563ffffffff1660a0830152611a9d565b8663ffffffff16601b03611a9d578463ffffffff168663ffffffff1681611a6f57611a6f611de5565b0663ffffffff90811660c084015285811690871681611a9057611a90611de5565b0463ffffffff1660a08301525b63ffffffff841615611ad857808261016001518563ffffffff1660208110611ac757611ac7611d92565b63ffffffff90921660209290920201525b60808201805163ffffffff80821660608601526004909101169052611afb610619565b979650505050505050565b6000611b1183611baa565b90506003841615611b2157600080fd5b6020810190601f8516601c0360031b83811b913563ffffffff90911b1916178460051c60005b601b811015611b9f5760208401933582821c6001168015611b6f5760018114611b8457611b95565b60008581526020839052604090209450611b95565b600082815260208690526040902094505b5050600101611b47565b505060805250505050565b60ff811661038002610184810190369061050401811015611c4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f636865636b207468617420746865726520697320656e6f7567682063616c6c6460448201527f6174610000000000000000000000000000000000000000000000000000000000606482015260840161087b565b50919050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091526101608101611cb9611cbe565b905290565b6040518061040001604052806020906020820280368337509192915050565b60008083601f840112611cef57600080fd5b50813567ffffffffffffffff811115611d0757600080fd5b602083019150836020828501011115611d1f57600080fd5b9250929050565b60008060008060408587031215611d3c57600080fd5b843567ffffffffffffffff80821115611d5457600080fd5b611d6088838901611cdd565b90965094506020870135915080821115611d7957600080fd5b50611d8687828801611cdd565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215611dd457600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea164736f6c634300080f000a"
var MIPSDeployedSourceMap = "1131:39544:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:45;;1745:10;1710:45;;;;;188:10:281;176:23;;;158:42;;146:2;131:18;1710:45:126;;;;;;;;2448:99;;;412:42:281;2534:6:126;400:55:281;382:74;;370:2;355:18;2448:99:126;211:251:281;25555:6339:126;;;;;;:::i;:::-;;:::i;:::-;;;1687:25:281;;;1675:2;1660:18;25555:6339:126;1541:177:281;25555:6339:126;25633:7;25676:18;;:::i;:::-;25823:4;25816:5;25813:15;25803:134;;25917:1;25914;25907:12;25803:134;25973:4;25967:11;25980;25964:28;25954:137;;26071:1;26068;26061:12;25954:137;26139:3;26121:16;26118:25;26108:150;;26238:1;26235;26228:12;26108:150;26302:3;26288:12;26285:21;26275:145;;26400:1;26397;26390:12;26275:145;26680:24;;27024:4;26726:20;27082:2;26784:21;;26680:24;26842:18;26726:20;26784:21;;;26680:24;26657:21;26653:52;;;26842:18;26726:20;;;26784:21;;;26680:24;26653:52;;26726:20;;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;;26842:18;26726:20;26784:21;;;26680:24;26657:21;26653:52;;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;27700:10;26842:18;27690:21;;;26784;;;;27798:1;27783:77;27808:2;27805:1;27802:9;27783:77;;;26680:24;;26657:21;26653:52;26726:20;;27856:1;26784:21;;;;26668:2;26842:18;;;;27826:1;27819:9;27783:77;;;27787:14;;;27938:5;:12;;;27934:71;;;27977:13;:11;:13::i;:::-;27970:20;;;;;27934:71;28019:10;;;:15;;28033:1;28019:15;;;;;28104:8;;;;-1:-1:-1;;28096:20:126;;-1:-1:-1;28096:7:126;:20::i;:::-;28082:34;-1:-1:-1;28146:10:126;28154:2;28146:10;;;;28223:1;28213:11;;;:26;;;28228:6;:11;;28238:1;28228:11;28213:26;28209:310;;;28369:13;28438:1;28416:4;28423:10;28416:17;28415:24;;;;28386:5;:12;;;28401:10;28386:25;28385:54;28369:70;;28464:40;28475:6;:11;;28485:1;28475:11;:20;;28493:2;28475:20;;;28489:1;28475:20;28464:40;;28497:6;28464:10;:40::i;:::-;28457:47;;;;;;;;28209:310;28768:15;;;;28563:9;;;;28700:4;28694:2;28686:10;;;28685:19;;;28768:15;28793:2;28785:10;;;28784:19;28768:36;;;;;;;:::i;:::-;;;;;;-1:-1:-1;28833:5:126;28857:11;;;;;:29;;;28872:6;:14;;28882:4;28872:14;28857:29;28853:832;;;28949:5;:15;;;28965:5;28949:22;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;29012:4:126;29006:2;28998:10;;;28997:19;28853:832;;;29050:4;29041:6;:13;;;29037:648;;;29171:6;:13;;29181:3;29171:13;:30;;;;29188:6;:13;;29198:3;29188:13;29171:30;:47;;;;29205:6;:13;;29215:3;29205:13;29171:47;29167:253;;;29281:4;29288:6;29281:13;29276:18;;29037:648;;29167:253;29380:21;29383:4;29390:6;29383:13;29398:2;29380;:21::i;:::-;29375:26;;29037:648;;;29454:4;29444:6;:14;;;;:32;;;;29462:6;:14;;29472:4;29462:14;29444:32;:50;;;;29480:6;:14;;29490:4;29480:14;29444:50;29440:245;;;29564:5;:15;;;29580:5;29564:22;;;;;;;;;:::i;:::-;;;;;29559:27;;29665:5;29657:13;;29440:245;29714:1;29704:6;:11;;;;:25;;;;;29728:1;29719:6;:10;;;29704:25;29703:42;;;;29734:6;:11;;29744:1;29734:11;29703:42;29699:125;;;29772:37;29785:6;29793:4;29799:5;29806:2;29772:12;:37::i;:::-;29765:44;;;;;;;;;;;29699:125;29857:13;29838:16;30009:4;29999:14;;;;29995:446;;30078:21;30081:4;30088:6;30081:13;30096:2;30078;:21::i;:::-;30072:27;;;;30136:10;30131:15;;30170:16;30131:15;30184:1;30170:7;:16::i;:::-;30164:22;;30218:4;30208:6;:14;;;;:32;;;;;30226:6;:14;;30236:4;30226:14;;30208:32;30204:223;;;30305:4;30293:16;;30407:1;30399:9;;30204:223;30015:426;29995:446;30474:10;30487:26;30495:4;30501:2;30505;30509:3;30487:7;:26::i;:::-;30516:10;30487:39;;;;-1:-1:-1;30612:4:126;30605:11;;;30644;;;:24;;;;;30667:1;30659:4;:9;;;;30644:24;:39;;;;;30679:4;30672;:11;;;30644:39;30640:847;;;30707:4;:9;;30715:1;30707:9;:22;;;;30720:4;:9;;30728:1;30720:9;30707:22;30703:144;;;30791:37;30802:4;:9;;30810:1;30802:9;:21;;30818:5;30802:21;;;30814:1;30802:21;30825:2;30791:10;:37::i;:::-;30784:44;;;;;;;;;;;;;;;30703:144;30869:4;:11;;30877:3;30869:11;30865:121;;30939:28;30948:5;30955:2;30959:7;;;;30939:8;:28::i;30865:121::-;31007:4;:11;;31015:3;31007:11;31003:121;;31077:28;31086:5;31093:2;31097:7;;;;;31077:8;:28::i;31003:121::-;31194:4;:11;;31202:3;31194:11;31190:80;;31236:15;:13;:15::i;31190:80::-;31373:4;31365;:12;;;;:27;;;;;31388:4;31381;:11;;;31365:27;31361:112;;;31423:31;31434:4;31440:2;31444;31448:5;31423:10;:31::i;31361:112::-;31547:6;:14;;31557:4;31547:14;:28;;;;-1:-1:-1;31565:10:126;;;;;31547:28;31543:93;;;31620:1;31595:5;:15;;;31611:5;31595:22;;;;;;;;;:::i;:::-;:26;;;;:22;;;;;;:26;31543:93;31682:9;:26;;31695:13;31682:26;31678:92;;31728:27;31737:9;31748:1;31751:3;31728:8;:27::i;:::-;31851:26;31860:5;31867:3;31872:4;31851:8;:26::i;:::-;31844:33;;;;;;;;;;;;;25555:6339;;;;;;;:::o;3092:2334::-;3639:4;3633:11;;3555:4;3358:31;3347:43;;3418:13;3358:31;3757:2;3457:13;;3347:43;3364:24;3358:31;3457:13;;;3347:43;;;;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3418:13;4185:11;3364:24;3358:31;3457:13;;;3347:43;3418:13;4280:11;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3133:12;;4420:13;;3633:11;;3457:13;;;;4185:11;3133:12;4500:84;4525:2;4522:1;4519:9;4500:84;;;3374:13;3364:24;;3358:31;3347:43;;3378:2;3418:13;;;;4580:1;3457:13;;;;4543:1;4536:9;4500:84;;;4504:14;4647:1;4643:2;4636:13;4742:5;4738:2;4734:14;4727:5;4722:27;4816:1;4802:15;;4837:6;4861:1;4856:273;;;;5196:1;5186:11;;4830:369;;4856:273;4888:8;4946:22;;;;5025:1;5020:22;;;;5112:1;5102:11;;4881:234;;4946:22;4965:1;4955:11;;4946:22;;5020;5039:1;5029:11;;4881:234;;4830:369;-1:-1:-1;;;5322:14:126;;;5305:32;;5365:19;5361:30;5397:3;5393:16;;;;5358:52;;3092:2334;-1:-1:-1;3092:2334:126:o;21610:1831::-;21683:11;21794:14;21811:24;21823:11;21811;:24::i;:::-;21794:41;;21943:1;21936:5;21932:13;21929:33;;;21958:1;21955;21948:12;21929:33;22091:2;22079:15;;;22032:20;22521:5;22518:1;22514:13;22556:4;22592:1;22577:343;22602:2;22599:1;22596:9;22577:343;;;22725:2;22713:15;;;22662:20;22760:12;;;22774:1;22756:20;22797:42;;;;22865:1;22860:42;;;;22749:153;;22797:42;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;22806:31;;22797:42;;22860;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;22869:31;;22749:153;-1:-1:-1;;22620:1:126;22613:9;22577:343;;;22581:14;23030:4;23024:11;23009:26;;23116:7;23110:4;23107:17;23097:124;;23158:10;23155:1;23148:21;23200:2;23197:1;23190:13;23097:124;-1:-1:-1;;23348:2:126;23337:14;;;;23325:10;23321:31;23318:1;23314:39;23382:16;;;;23400:10;23378:33;;21610:1831;-1:-1:-1;;;21610:1831:126:o;18720:823::-;18789:12;18876:18;;:::i;:::-;18944:4;18935:13;;18996:5;:8;;;19007:1;18996:12;18980:28;;:5;:12;;;:28;;;18976:95;;19028:28;;;;;2114:2:281;19028:28:126;;;2096:21:281;2153:2;2133:18;;;2126:30;2192:20;2172:18;;;2165:48;2230:18;;19028:28:126;;;;;;;;18976:95;19160:8;;;;;19193:12;;;;;19182:23;;;;;;;19219:20;;;;;19160:8;19351:13;;;19347:90;;19412:6;19421:1;19412:10;19384:5;:15;;;19400:8;19384:25;;;;;;;;;:::i;:::-;:38;;;;:25;;;;;;:38;19347:90;19513:13;:11;:13::i;:::-;19506:20;18720:823;-1:-1:-1;;;;;18720:823:126:o;2645:339::-;2706:11;2770:18;;;;2779:8;;;;2770:18;;;;;;2769:25;;;;;2786:1;2833:2;:9;;;2827:16;;;;;2826:22;;2825:32;;;;;;;2887:9;;2886:15;2769:25;2944:21;;2964:1;2944:21;;;2955:6;2944:21;2929:11;;;;;:37;;-1:-1:-1;;;2645:339:126;;;;:::o;13581:2026::-;13678:12;13764:18;;:::i;:::-;13832:4;13823:13;;13864:17;13924:5;:8;;;13935:1;13924:12;13908:28;;:5;:12;;;:28;;;13904:97;;13956:30;;;;;2461:2:281;13956:30:126;;;2443:21:281;2500:2;2480:18;;;2473:30;2539:22;2519:18;;;2512:50;2579:18;;13956:30:126;2259:344:281;13904:97:126;14071:7;:12;;14082:1;14071:12;:28;;;;14087:7;:12;;14098:1;14087:12;14071:28;14067:947;;;14119:9;14131:5;:15;;;14147:6;14131:23;;;;;;;;;:::i;:::-;;;;;14119:35;;14195:2;14188:9;;:3;:9;;;:25;;;;;14201:7;:12;;14212:1;14201:12;14188:25;14187:58;;;;14226:2;14219:9;;:3;:9;;;;:25;;;;;14232:7;:12;;14243:1;14232:12;14219:25;14172:73;;14101:159;14067:947;;;14357:7;:12;;14368:1;14357:12;14353:661;;14418:1;14410:3;14404:15;;;;14389:30;;14353:661;;;14522:7;:12;;14533:1;14522:12;14518:496;;14582:1;14575:3;14569:14;;;14554:29;;14518:496;;;14703:7;:12;;14714:1;14703:12;14699:315;;14791:4;14785:2;14776:11;;;14775:20;14761:10;14818:8;;;14814:84;;14878:1;14871:3;14865:14;;;14850:29;;14814:84;14919:3;:8;;14926:1;14919:8;14915:85;;14980:1;14972:3;14966:15;;;;14951:30;;14915:85;14717:297;14699:315;15090:8;;;;;15168:12;;;;15157:23;;;;;15324:178;;;;15415:1;15389:22;15392:5;15400:6;15392:14;15408:2;15389;:22::i;:::-;:27;;;;;;;15375:42;;15384:1;15375:42;15360:57;:12;;;:57;15324:178;;;15471:12;;;;;15486:1;15471:16;15456:31;;;;15324:178;15577:13;:11;:13::i;:::-;15570:20;13581:2026;-1:-1:-1;;;;;;;;13581:2026:126:o;31940:8733::-;32027:10;32089;32097:2;32089:10;;;;32128:11;;;:44;;;32154:1;32144:6;:11;;;;:27;;;;;32168:3;32159:6;:12;;;32144:27;32124:8490;;;32213:4;32206:11;;32337:6;32397:3;32392:25;;;;32472:3;32467:25;;;;32546:3;32541:25;;;;32621:3;32616:25;;;;32695:3;32690:25;;;;32768:3;32763:25;;;;32842:3;32837:25;;;;32330:532;;32392:25;32411:4;32403:12;;32392:25;;32467;32486:4;32478:12;;32467:25;;32541;32560:4;32552:12;;32541:25;;32616;32635:4;32627:12;;32616:25;;32690;32709:4;32701:12;;32690:25;;32763;32782:4;32774:12;;32763:25;;32837;32856:4;32848:12;;32330:532;;32925:4;:12;;32933:4;32925:12;32921:4023;;-1:-1:-1;;;32976:9:126;32968:26;;32989:4;32984:1;32976:9;;;32975:18;32968:26;32961:33;;32921:4023;33062:4;:12;;33070:4;33062:12;33058:3886;;-1:-1:-1;;;33113:9:126;33105:26;;33126:4;33121:1;33113:9;;;33112:18;33105:26;33098:33;;33058:3886;33199:4;:12;;33207:4;33199:12;33195:3749;;33264:4;33259:1;33251:9;;;33250:18;33297:27;33251:9;33300:11;;;;33313:2;:10;;;33297:2;:27::i;:::-;33290:34;;;;;;;33195:3749;33393:4;:12;;33401:4;33393:12;33389:3555;;-1:-1:-1;;;33436:17:126;;;33448:4;33443:9;;33436:17;33429:24;;33389:3555;33522:4;:11;;33530:3;33522:11;33518:3426;;-1:-1:-1;;;33564:17:126;;;33576:4;33571:9;;33564:17;33557:24;;33518:3426;33650:4;:12;;33658:4;33650:12;33646:3298;;33693:21;33702:2;33696:8;;:2;:8;;;;33711:2;33706;:7;33693:2;:21::i;:::-;33686:28;;;;;;33646:3298;33963:4;:12;;33971:4;33963:12;33959:2985;;34006:2;33999:9;;;;;;33959:2985;34077:4;:12;;34085:4;34077:12;34073:2871;;34120:2;34113:9;;;;;;34073:2871;34191:4;:12;;34199:4;34191:12;34187:2757;;34234:2;34227:9;;;;;;34187:2757;34305:4;:12;;34313:4;34305:12;34301:2643;;34348:2;34341:9;;;;;;34301:2643;34422:4;:12;;34430:4;34422:12;34418:2526;;34465:2;34458:9;;;;;;34418:2526;34582:4;:12;;34590:4;34582:12;34578:2366;;34625:2;34618:9;;;;;;34578:2366;34696:4;:12;;34704:4;34696:12;34692:2252;;34739:2;34732:9;;;;;;34692:2252;34810:4;:12;;34818:4;34810:12;34806:2138;;34853:2;34846:9;;;;;;34806:2138;34924:4;:12;;34932:4;34924:12;34920:2024;;34967:2;34960:9;;;;;;34920:2024;35038:4;:12;;35046:4;35038:12;35034:1910;;35081:2;35074:9;;;;;;35034:1910;35152:4;:12;;35160:4;35152:12;35148:1796;;35195:2;35188:9;;;;;;35148:1796;35267:4;:12;;35275:4;35267:12;35263:1681;;35310:2;35303:9;;;;;;35263:1681;35380:4;:12;;35388:4;35380:12;35376:1568;;35423:2;35416:9;;;;;;35376:1568;35494:4;:12;;35502:4;35494:12;35490:1454;;35537:2;35530:9;;;;;;35490:1454;35686:4;:12;;35694:4;35686:12;35682:1262;;-1:-1:-1;;;35730:7:126;;;35722:16;;35682:1262;35807:4;:12;;35815:4;35807:12;35803:1141;;-1:-1:-1;;;35851:7:126;;;35843:16;;35803:1141;35927:4;:12;;35935:4;35927:12;35923:1021;;-1:-1:-1;;;35971:7:126;;;35963:16;;35923:1021;36048:4;:12;;36056:4;36048:12;36044:900;;-1:-1:-1;;;36092:7:126;;;36084:16;;36044:900;36168:4;:12;;36176:4;36168:12;36164:780;;-1:-1:-1;;;36212:7:126;;;36204:16;;36164:780;36287:4;:12;;36295:4;36287:12;36283:661;;-1:-1:-1;;;36331:7:126;;;36323:16;;36283:661;36407:4;:12;;36415:4;36407:12;36403:541;;-1:-1:-1;;;36451:7:126;;;36443:16;;36403:541;36527:4;:12;;36535:4;36527:12;36523:421;;-1:-1:-1;;;36572:7:126;;;36570:10;36563:17;;36523:421;36649:4;:12;;36657:4;36649:12;36645:299;;36710:2;36692:21;;36698:2;36692:21;;;:29;;36720:1;36692:29;;;36716:1;36692:29;36685:36;;;;;;;;36645:299;36791:4;:12;;36799:4;36791:12;36787:157;;36839:2;36834:7;;:2;:7;;;:15;;36848:1;36834:15;;36787:157;36896:29;;;;;2810:2:281;36896:29:126;;;2792:21:281;2849:2;2829:18;;;2822:30;2888:21;2868:18;;;2861:49;2927:18;;36896:29:126;2608:343:281;36787:157:126;32174:4784;32124:8490;;;37014:6;:14;;37024:4;37014:14;37010:3590;;37073:4;37066:11;;37148:3;37140:11;;;37136:549;;-1:-1:-1;;;37193:21:126;;;37179:36;;37136:549;37300:4;:12;;37308:4;37300:12;:28;;;;37316:4;:12;;37324:4;37316:12;37300:28;37296:389;;;37360:4;:12;;37368:4;37360:12;37356:83;;37409:3;;;37356:83;37464:8;37502:127;37514:10;37509:15;;:20;37502:127;;37594:8;37561:3;37594:8;;;;;37561:3;37502:127;;;37661:1;-1:-1:-1;37654:8:126;;-1:-1:-1;;37654:8:126;37010:3590;37752:6;:14;;37762:4;37752:14;37748:2852;;-1:-1:-1;;37797:8:126;37803:2;37797:8;;;;37790:15;;37748:2852;37872:6;:14;;37882:4;37872:14;37868:2732;;37917:42;37935:2;37940:1;37935:6;37945:1;37934:12;37929:2;:17;37921:26;;:3;:26;;;;37951:4;37920:35;37957:1;37917:2;:42::i;37868:2732::-;38026:6;:14;;38036:4;38026:14;38022:2578;;38071:45;38089:2;38094:1;38089:6;38099:1;38088:12;38083:2;:17;38075:26;;:3;:26;;;;38105:6;38074:37;38113:2;38071;:45::i;38022:2578::-;38184:6;:14;;38194:4;38184:14;38180:2420;;-1:-1:-1;;38235:21:126;38254:1;38249;38244:6;;38243:12;38235:21;;38292:36;;;38363:5;38358:10;;38235:21;;;;;38357:18;38350:25;;38180:2420;38442:6;:14;;38452:4;38442:14;38438:2162;;38487:3;38480:10;;;;;38438:2162;38558:6;:14;;38568:4;38558:14;38554:2046;;38618:2;38623:1;38618:6;38628:1;38617:12;38612:2;:17;38604:26;;:3;:26;;;;38634:4;38603:35;38596:42;;;;;38554:2046;38707:6;:14;;38717:4;38707:14;38703:1897;;38767:2;38772:1;38767:6;38777:1;38766:12;38761:2;:17;38753:26;;:3;:26;;;;38783:6;38752:37;38745:44;;;;;38703:1897;38858:6;:14;;38868:4;38858:14;38854:1746;;-1:-1:-1;;38909:26:126;38933:1;38928;38923:6;;38922:12;38917:2;:17;38909:26;;38971:41;;;39047:5;39042:10;;38909:26;;;;;39041:18;39034:25;;38854:1746;39127:6;:14;;39137:4;39127:14;39123:1477;;-1:-1:-1;;39184:4:126;39178:34;39210:1;39205;39200:6;;39199:12;39194:2;:17;39178:34;;39268:27;;;39248:48;;;39326:10;;39179:9;;;39178:34;;39325:18;39318:25;;39123:1477;39411:6;:14;;39421:4;39411:14;39407:1193;;-1:-1:-1;;39468:6:126;39462:36;39496:1;39491;39486:6;;39485:12;39480:2;:17;39462:36;;39554:29;;;39534:50;;;39614:10;;39463:11;;;39462:36;;39613:18;39606:25;;39407:1193;39700:6;:14;;39710:4;39700:14;39696:904;;-1:-1:-1;;39751:20:126;39769:1;39764;39759:6;;39758:12;39751:20;;39807:36;;;39879:5;39873:11;;39751:20;;;;;39872:19;39865:26;;39696:904;39959:6;:14;;39969:4;39959:14;39955:645;;40004:2;39997:9;;;;;39955:645;40075:6;:14;;40085:4;40075:14;40071:529;;-1:-1:-1;;40126:25:126;40149:1;40144;40139:6;;40138:12;40133:2;:17;40126:25;;40187:41;;;40264:5;40258:11;;40126:25;;;;;40257:19;40250:26;;40071:529;40343:6;:14;;40353:4;40343:14;40339:261;;40388:3;40381:10;;;;;40339:261;40458:6;:14;;40468:4;40458:14;40454:146;;40503:2;40496:9;;;;;19824:782;19910:12;19997:18;;:::i;:::-;-1:-1:-1;20065:4:126;20172:2;20160:14;;;;20152:41;;;;;;;3158:2:281;20152:41:126;;;3140:21:281;3197:2;3177:18;;;3170:30;3236:16;3216:18;;;3209:44;3270:18;;20152:41:126;2956:338:281;20152:41:126;20289:14;;;;;;;:30;;;20307:12;20289:30;20285:102;;;20368:4;20339:5;:15;;;20355:9;20339:26;;;;;;;;;:::i;:::-;:33;;;;:26;;;;;;:33;20285:102;20442:12;;;;;20431:23;;;;:8;;;:23;20498:1;20483:16;;;20468:31;;;20576:13;:11;:13::i;5467:7728::-;5510:12;5596:18;;:::i;:::-;-1:-1:-1;5774:15:126;;:18;;;;5664:4;5934:18;;;;5978;;;;6022;;;;;5664:4;;5754:17;;;;5934:18;5978;6112;;;6126:4;6112:18;6108:6777;;6162:2;6191:4;6186:9;;:14;6182:144;;6302:4;6297:9;;6289:4;:18;6283:24;6182:144;6347:2;:7;;6353:1;6347:7;6343:161;;6383:10;;;;;6415:16;;;;;;;;6383:10;-1:-1:-1;6343:161:126;;;6483:2;6478:7;;6343:161;6132:386;6108:6777;;;6620:10;:18;;6634:4;6620:18;6616:6269;;1745:10;6658:14;;6616:6269;;;6756:10;:18;;6770:4;6756:18;6752:6133;;6799:1;6794:6;;6752:6133;;;6924:10;:18;;6938:4;6924:18;6920:5965;;6977:4;6962:12;;;:19;6999:26;;;:14;;;:26;7050:13;:11;:13::i;:::-;7043:20;;;;;;;;;5467:7728;:::o;6920:5965::-;7189:10;:18;;7203:4;7189:18;7185:5700;;7340:14;;;7336:2708;7185:5700;7336:2708;7510:22;;;;;7506:2538;;7635:10;7648:27;7656:2;7661:10;7656:15;7673:1;7648:7;:27::i;:::-;7759:17;;;;7635:40;;-1:-1:-1;7759:17:126;7737:19;7909:14;7928:1;7903:26;7899:131;;7971:36;7995:11;1277:21:127;1426:15;;;1467:8;1461:4;1454:22;1595:4;1582:18;;1602:19;1578:44;1624:11;1575:61;;1222:430;7971:36:126;7957:50;;7899:131;8116:20;;;;;8083:54;;;;;;;;3472:25:281;;;8083:54:126;3533:23:281;;;3513:18;;;3506:51;8052:11:126;;;;8083:19;:6;:19;;;;3445:18:281;;8083:54:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8051:86;;;;8364:1;8360:2;8356:10;8461:9;8458:1;8454:17;8543:6;8536:5;8533:17;8530:40;;;8563:5;8553:15;;8530:40;;8646:6;8642:2;8639:14;8636:34;;;8666:2;8656:12;;8636:34;8772:3;8767:1;8759:6;8755:14;8750:3;8746:24;8742:34;8735:41;;8872:3;8868:1;8856:9;8847:6;8844:1;8840:14;8836:30;8832:38;8828:48;8821:55;;9027:1;9023;9019;9007:9;9004:1;9000:17;8996:25;8992:33;8988:41;9154:1;9150;9146;9137:6;9125:9;9122:1;9118:17;9114:30;9110:38;9106:46;9102:54;9084:72;;9285:10;9281:15;9275:4;9271:26;9263:34;;9401:3;9393:4;9389:9;9384:3;9380:19;9377:28;9370:35;;;;9547:33;9556:2;9561:10;9556:15;9573:1;9576:3;9547:8;:33::i;:::-;9602:20;;;:38;;;;;;;;;-1:-1:-1;7506:2538:126;;-1:-1:-1;;;7506:2538:126;;9759:18;;;;;9755:289;;9929:2;9924:7;;7185:5700;;9755:289;9983:10;9978:15;;2053:3;10015:10;;9755:289;7185:5700;;;10173:10;:18;;10187:4;10173:18;10169:2716;;10327:15;;;1824:1;10327:15;;:34;;-1:-1:-1;10346:15:126;;;1859:1;10346:15;10327:34;:57;;;-1:-1:-1;10365:19:126;;;1936:1;10365:19;10327:57;10323:1593;;;10413:2;10408:7;;10169:2716;;10323:1593;10539:23;;;;;10535:1381;;10586:10;10599:27;10607:2;10612:10;10607:15;10624:1;10599:7;:27::i;:::-;10702:17;;;;10586:40;;-1:-1:-1;10945:1:126;10937:10;;11039:1;11035:17;11114:13;;;11111:32;;;11136:5;11130:11;;11111:32;11422:14;;;11228:1;11418:22;;;11414:32;;;;11311:26;11335:1;11220:10;;;11315:18;;;11311:26;11410:43;11216:20;;11518:12;11646:17;;;:23;11714:1;11691:20;;;:24;11224:2;-1:-1:-1;11224:2:126;7185:5700;;10169:2716;12118:10;:18;;12132:4;12118:18;12114:771;;12228:2;:7;;12234:1;12228:7;12224:647;;12321:14;;;;;:40;;-1:-1:-1;12339:22:126;;;1978:1;12339:22;12321:40;:62;;;-1:-1:-1;12365:18:126;;;1897:1;12365:18;12321:62;12317:404;;;12416:1;12411:6;;12224:647;;12317:404;12462:15;;;1824:1;12462:15;;:34;;-1:-1:-1;12481:15:126;;;1859:1;12481:15;12462:34;:61;;;-1:-1:-1;12500:23:126;;;2021:1;12500:23;12462:61;:84;;;-1:-1:-1;12527:19:126;;;1936:1;12527:19;12462:84;12458:263;;;12579:1;12574:6;;7185:5700;;12224:647;12772:10;12767:15;;2087:4;12804:11;;12224:647;12960:15;;;;;:23;;;;:18;;;;:23;;;;12997:15;;:23;;;:18;;;;:23;-1:-1:-1;13086:12:126;;;;13075:23;;;:8;;;:23;13142:1;13127:16;13112:31;;;;;13165:13;:11;:13::i;15948:2480::-;16042:12;16128:18;;:::i;:::-;-1:-1:-1;16196:4:126;16228:10;16336:13;;;16345:4;16336:13;16332:1705;;-1:-1:-1;16375:8:126;;;;16332:1705;;;16494:5;:13;;16503:4;16494:13;16490:1547;;16527:14;;;:8;;;:14;16490:1547;;;16657:5;:13;;16666:4;16657:13;16653:1384;;-1:-1:-1;16696:8:126;;;;16653:1384;;;16815:5;:13;;16824:4;16815:13;16811:1226;;16848:14;;;:8;;;:14;16811:1226;;;16989:5;:13;;16998:4;16989:13;16985:1052;;17116:9;17062:17;17042;;;17062;;;;17042:37;17123:2;17116:9;;;;;17098:8;;;:28;17144:22;:8;;;:22;16985:1052;;;17303:5;:13;;17312:4;17303:13;17299:738;;17370:11;17356;;;17370;;;17356:25;17425:2;17418:9;;;;;17400:8;;;:28;17446:22;:8;;;:22;17299:738;;;17627:5;:13;;17636:4;17627:13;17623:414;;17697:3;17678:23;;17684:3;17678:23;;;;;;;:::i;:::-;;17660:42;;:8;;;:42;17738:23;;;;;;;;;;;;;:::i;:::-;;17720:42;;:8;;;:42;17623:414;;;17931:5;:13;;17940:4;17931:13;17927:110;;17981:3;17975:9;;:3;:9;;;;;;;:::i;:::-;;17964:20;;;;:8;;;:20;18013:9;;;;;;;;;;;:::i;:::-;;18002:20;;:8;;;:20;17927:110;18130:14;;;;18126:85;;18193:3;18164:5;:15;;;18180:9;18164:26;;;;;;;;;:::i;:::-;:32;;;;:26;;;;;;:32;18126:85;18265:12;;;;;18254:23;;;;:8;;;:23;18321:1;18306:16;;;18291:31;;;18398:13;:11;:13::i;:::-;18391:20;15948:2480;-1:-1:-1;;;;;;;15948:2480:126:o;23777:1654::-;23953:14;23970:24;23982:11;23970;:24::i;:::-;23953:41;;24102:1;24095:5;24091:13;24088:33;;;24117:1;24114;24107:12;24088:33;24256:2;24450:15;;;24275:2;24264:14;;24252:10;24248:31;24245:1;24241:39;24406:16;;;24191:20;;24391:10;24380:22;;;24376:27;24366:38;24363:60;24892:5;24889:1;24885:13;24963:1;24948:343;24973:2;24970:1;24967:9;24948:343;;;25096:2;25084:15;;;25033:20;25131:12;;;25145:1;25127:20;25168:42;;;;25236:1;25231:42;;;;25120:153;;25168:42;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;25177:31;;25168:42;;25231;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;25240:31;;25120:153;-1:-1:-1;;24991:1:126;24984:9;24948:343;;;-1:-1:-1;;25390:4:126;25383:18;-1:-1:-1;;;;23777:1654:126:o;20810:586::-;21132:20;;;21156:7;21132:32;21125:3;:40;;;21238:14;;21293:17;;21287:24;;;21279:72;;;;;;;4209:2:281;21279:72:126;;;4191:21:281;4248:2;4228:18;;;4221:30;4287:34;4267:18;;;4260:62;4358:5;4338:18;;;4331:33;4381:19;;21279:72:126;4007:399:281;21279:72:126;21365:14;20810:586;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;467:347:281:-;518:8;528:6;582:3;575:4;567:6;563:17;559:27;549:55;;600:1;597;590:12;549:55;-1:-1:-1;623:20:281;;666:18;655:30;;652:50;;;698:1;695;688:12;652:50;735:4;727:6;723:17;711:29;;787:3;780:4;771:6;763;759:19;755:30;752:39;749:59;;;804:1;801;794:12;749:59;467:347;;;;;:::o;819:717::-;909:6;917;925;933;986:2;974:9;965:7;961:23;957:32;954:52;;;1002:1;999;992:12;954:52;1042:9;1029:23;1071:18;1112:2;1104:6;1101:14;1098:34;;;1128:1;1125;1118:12;1098:34;1167:58;1217:7;1208:6;1197:9;1193:22;1167:58;:::i;:::-;1244:8;;-1:-1:-1;1141:84:281;-1:-1:-1;1332:2:281;1317:18;;1304:32;;-1:-1:-1;1348:16:281;;;1345:36;;;1377:1;1374;1367:12;1345:36;;1416:60;1468:7;1457:8;1446:9;1442:24;1416:60;:::i;:::-;819:717;;;;-1:-1:-1;1495:8:281;-1:-1:-1;;;;819:717:281:o;1723:184::-;1775:77;1772:1;1765:88;1872:4;1869:1;1862:15;1896:4;1893:1;1886:15;3568:245;3647:6;3655;3708:2;3696:9;3687:7;3683:23;3679:32;3676:52;;;3724:1;3721;3714:12;3676:52;-1:-1:-1;;3747:16:281;;3803:2;3788:18;;;3782:25;3747:16;;3782:25;;-1:-1:-1;3568:245:281:o;3818:184::-;3870:77;3867:1;3860:88;3967:4;3964:1;3957:15;3991:4;3988:1;3981:15" var MIPSDeployedSourceMap = "1131:39544:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1710:45;;1745:10;1710:45;;;;;188:10:283;176:23;;;158:42;;146:2;131:18;1710:45:128;;;;;;;;2448:99;;;412:42:283;2534:6:128;400:55:283;382:74;;370:2;355:18;2448:99:128;211:251:283;25555:6339:128;;;;;;:::i;:::-;;:::i;:::-;;;1687:25:283;;;1675:2;1660:18;25555:6339:128;1541:177:283;25555:6339:128;25633:7;25676:18;;:::i;:::-;25823:4;25816:5;25813:15;25803:134;;25917:1;25914;25907:12;25803:134;25973:4;25967:11;25980;25964:28;25954:137;;26071:1;26068;26061:12;25954:137;26139:3;26121:16;26118:25;26108:150;;26238:1;26235;26228:12;26108:150;26302:3;26288:12;26285:21;26275:145;;26400:1;26397;26390:12;26275:145;26680:24;;27024:4;26726:20;27082:2;26784:21;;26680:24;26842:18;26726:20;26784:21;;;26680:24;26657:21;26653:52;;;26842:18;26726:20;;;26784:21;;;26680:24;26653:52;;26726:20;;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;;26842:18;26726:20;26784:21;;;26680:24;26657:21;26653:52;;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;26784:21;;;26680:24;26653:52;;26842:18;26726:20;27700:10;26842:18;27690:21;;;26784;;;;27798:1;27783:77;27808:2;27805:1;27802:9;27783:77;;;26680:24;;26657:21;26653:52;26726:20;;27856:1;26784:21;;;;26668:2;26842:18;;;;27826:1;27819:9;27783:77;;;27787:14;;;27938:5;:12;;;27934:71;;;27977:13;:11;:13::i;:::-;27970:20;;;;;27934:71;28019:10;;;:15;;28033:1;28019:15;;;;;28104:8;;;;-1:-1:-1;;28096:20:128;;-1:-1:-1;28096:7:128;:20::i;:::-;28082:34;-1:-1:-1;28146:10:128;28154:2;28146:10;;;;28223:1;28213:11;;;:26;;;28228:6;:11;;28238:1;28228:11;28213:26;28209:310;;;28369:13;28438:1;28416:4;28423:10;28416:17;28415:24;;;;28386:5;:12;;;28401:10;28386:25;28385:54;28369:70;;28464:40;28475:6;:11;;28485:1;28475:11;:20;;28493:2;28475:20;;;28489:1;28475:20;28464:40;;28497:6;28464:10;:40::i;:::-;28457:47;;;;;;;;28209:310;28768:15;;;;28563:9;;;;28700:4;28694:2;28686:10;;;28685:19;;;28768:15;28793:2;28785:10;;;28784:19;28768:36;;;;;;;:::i;:::-;;;;;;-1:-1:-1;28833:5:128;28857:11;;;;;:29;;;28872:6;:14;;28882:4;28872:14;28857:29;28853:832;;;28949:5;:15;;;28965:5;28949:22;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;29012:4:128;29006:2;28998:10;;;28997:19;28853:832;;;29050:4;29041:6;:13;;;29037:648;;;29171:6;:13;;29181:3;29171:13;:30;;;;29188:6;:13;;29198:3;29188:13;29171:30;:47;;;;29205:6;:13;;29215:3;29205:13;29171:47;29167:253;;;29281:4;29288:6;29281:13;29276:18;;29037:648;;29167:253;29380:21;29383:4;29390:6;29383:13;29398:2;29380;:21::i;:::-;29375:26;;29037:648;;;29454:4;29444:6;:14;;;;:32;;;;29462:6;:14;;29472:4;29462:14;29444:32;:50;;;;29480:6;:14;;29490:4;29480:14;29444:50;29440:245;;;29564:5;:15;;;29580:5;29564:22;;;;;;;;;:::i;:::-;;;;;29559:27;;29665:5;29657:13;;29440:245;29714:1;29704:6;:11;;;;:25;;;;;29728:1;29719:6;:10;;;29704:25;29703:42;;;;29734:6;:11;;29744:1;29734:11;29703:42;29699:125;;;29772:37;29785:6;29793:4;29799:5;29806:2;29772:12;:37::i;:::-;29765:44;;;;;;;;;;;29699:125;29857:13;29838:16;30009:4;29999:14;;;;29995:446;;30078:21;30081:4;30088:6;30081:13;30096:2;30078;:21::i;:::-;30072:27;;;;30136:10;30131:15;;30170:16;30131:15;30184:1;30170:7;:16::i;:::-;30164:22;;30218:4;30208:6;:14;;;;:32;;;;;30226:6;:14;;30236:4;30226:14;;30208:32;30204:223;;;30305:4;30293:16;;30407:1;30399:9;;30204:223;30015:426;29995:446;30474:10;30487:26;30495:4;30501:2;30505;30509:3;30487:7;:26::i;:::-;30516:10;30487:39;;;;-1:-1:-1;30612:4:128;30605:11;;;30644;;;:24;;;;;30667:1;30659:4;:9;;;;30644:24;:39;;;;;30679:4;30672;:11;;;30644:39;30640:847;;;30707:4;:9;;30715:1;30707:9;:22;;;;30720:4;:9;;30728:1;30720:9;30707:22;30703:144;;;30791:37;30802:4;:9;;30810:1;30802:9;:21;;30818:5;30802:21;;;30814:1;30802:21;30825:2;30791:10;:37::i;:::-;30784:44;;;;;;;;;;;;;;;30703:144;30869:4;:11;;30877:3;30869:11;30865:121;;30939:28;30948:5;30955:2;30959:7;;;;30939:8;:28::i;30865:121::-;31007:4;:11;;31015:3;31007:11;31003:121;;31077:28;31086:5;31093:2;31097:7;;;;;31077:8;:28::i;31003:121::-;31194:4;:11;;31202:3;31194:11;31190:80;;31236:15;:13;:15::i;31190:80::-;31373:4;31365;:12;;;;:27;;;;;31388:4;31381;:11;;;31365:27;31361:112;;;31423:31;31434:4;31440:2;31444;31448:5;31423:10;:31::i;31361:112::-;31547:6;:14;;31557:4;31547:14;:28;;;;-1:-1:-1;31565:10:128;;;;;31547:28;31543:93;;;31620:1;31595:5;:15;;;31611:5;31595:22;;;;;;;;;:::i;:::-;:26;;;;:22;;;;;;:26;31543:93;31682:9;:26;;31695:13;31682:26;31678:92;;31728:27;31737:9;31748:1;31751:3;31728:8;:27::i;:::-;31851:26;31860:5;31867:3;31872:4;31851:8;:26::i;:::-;31844:33;;;;;;;;;;;;;25555:6339;;;;;;;:::o;3092:2334::-;3639:4;3633:11;;3555:4;3358:31;3347:43;;3418:13;3358:31;3757:2;3457:13;;3347:43;3364:24;3358:31;3457:13;;;3347:43;;;;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3418:13;4185:11;3364:24;3358:31;3457:13;;;3347:43;3418:13;4280:11;3364:24;3358:31;3457:13;;;3347:43;3364:24;3358:31;3457:13;;;3347:43;3133:12;;4420:13;;3633:11;;3457:13;;;;4185:11;3133:12;4500:84;4525:2;4522:1;4519:9;4500:84;;;3374:13;3364:24;;3358:31;3347:43;;3378:2;3418:13;;;;4580:1;3457:13;;;;4543:1;4536:9;4500:84;;;4504:14;4647:1;4643:2;4636:13;4742:5;4738:2;4734:14;4727:5;4722:27;4816:1;4802:15;;4837:6;4861:1;4856:273;;;;5196:1;5186:11;;4830:369;;4856:273;4888:8;4946:22;;;;5025:1;5020:22;;;;5112:1;5102:11;;4881:234;;4946:22;4965:1;4955:11;;4946:22;;5020;5039:1;5029:11;;4881:234;;4830:369;-1:-1:-1;;;5322:14:128;;;5305:32;;5365:19;5361:30;5397:3;5393:16;;;;5358:52;;3092:2334;-1:-1:-1;3092:2334:128:o;21610:1831::-;21683:11;21794:14;21811:24;21823:11;21811;:24::i;:::-;21794:41;;21943:1;21936:5;21932:13;21929:33;;;21958:1;21955;21948:12;21929:33;22091:2;22079:15;;;22032:20;22521:5;22518:1;22514:13;22556:4;22592:1;22577:343;22602:2;22599:1;22596:9;22577:343;;;22725:2;22713:15;;;22662:20;22760:12;;;22774:1;22756:20;22797:42;;;;22865:1;22860:42;;;;22749:153;;22797:42;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;22806:31;;22797:42;;22860;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;22869:31;;22749:153;-1:-1:-1;;22620:1:128;22613:9;22577:343;;;22581:14;23030:4;23024:11;23009:26;;23116:7;23110:4;23107:17;23097:124;;23158:10;23155:1;23148:21;23200:2;23197:1;23190:13;23097:124;-1:-1:-1;;23348:2:128;23337:14;;;;23325:10;23321:31;23318:1;23314:39;23382:16;;;;23400:10;23378:33;;21610:1831;-1:-1:-1;;;21610:1831:128:o;18720:823::-;18789:12;18876:18;;:::i;:::-;18944:4;18935:13;;18996:5;:8;;;19007:1;18996:12;18980:28;;:5;:12;;;:28;;;18976:95;;19028:28;;;;;2114:2:283;19028:28:128;;;2096:21:283;2153:2;2133:18;;;2126:30;2192:20;2172:18;;;2165:48;2230:18;;19028:28:128;;;;;;;;18976:95;19160:8;;;;;19193:12;;;;;19182:23;;;;;;;19219:20;;;;;19160:8;19351:13;;;19347:90;;19412:6;19421:1;19412:10;19384:5;:15;;;19400:8;19384:25;;;;;;;;;:::i;:::-;:38;;;;:25;;;;;;:38;19347:90;19513:13;:11;:13::i;:::-;19506:20;18720:823;-1:-1:-1;;;;;18720:823:128:o;2645:339::-;2706:11;2770:18;;;;2779:8;;;;2770:18;;;;;;2769:25;;;;;2786:1;2833:2;:9;;;2827:16;;;;;2826:22;;2825:32;;;;;;;2887:9;;2886:15;2769:25;2944:21;;2964:1;2944:21;;;2955:6;2944:21;2929:11;;;;;:37;;-1:-1:-1;;;2645:339:128;;;;:::o;13581:2026::-;13678:12;13764:18;;:::i;:::-;13832:4;13823:13;;13864:17;13924:5;:8;;;13935:1;13924:12;13908:28;;:5;:12;;;:28;;;13904:97;;13956:30;;;;;2461:2:283;13956:30:128;;;2443:21:283;2500:2;2480:18;;;2473:30;2539:22;2519:18;;;2512:50;2579:18;;13956:30:128;2259:344:283;13904:97:128;14071:7;:12;;14082:1;14071:12;:28;;;;14087:7;:12;;14098:1;14087:12;14071:28;14067:947;;;14119:9;14131:5;:15;;;14147:6;14131:23;;;;;;;;;:::i;:::-;;;;;14119:35;;14195:2;14188:9;;:3;:9;;;:25;;;;;14201:7;:12;;14212:1;14201:12;14188:25;14187:58;;;;14226:2;14219:9;;:3;:9;;;;:25;;;;;14232:7;:12;;14243:1;14232:12;14219:25;14172:73;;14101:159;14067:947;;;14357:7;:12;;14368:1;14357:12;14353:661;;14418:1;14410:3;14404:15;;;;14389:30;;14353:661;;;14522:7;:12;;14533:1;14522:12;14518:496;;14582:1;14575:3;14569:14;;;14554:29;;14518:496;;;14703:7;:12;;14714:1;14703:12;14699:315;;14791:4;14785:2;14776:11;;;14775:20;14761:10;14818:8;;;14814:84;;14878:1;14871:3;14865:14;;;14850:29;;14814:84;14919:3;:8;;14926:1;14919:8;14915:85;;14980:1;14972:3;14966:15;;;;14951:30;;14915:85;14717:297;14699:315;15090:8;;;;;15168:12;;;;15157:23;;;;;15324:178;;;;15415:1;15389:22;15392:5;15400:6;15392:14;15408:2;15389;:22::i;:::-;:27;;;;;;;15375:42;;15384:1;15375:42;15360:57;:12;;;:57;15324:178;;;15471:12;;;;;15486:1;15471:16;15456:31;;;;15324:178;15577:13;:11;:13::i;:::-;15570:20;13581:2026;-1:-1:-1;;;;;;;;13581:2026:128:o;31940:8733::-;32027:10;32089;32097:2;32089:10;;;;32128:11;;;:44;;;32154:1;32144:6;:11;;;;:27;;;;;32168:3;32159:6;:12;;;32144:27;32124:8490;;;32213:4;32206:11;;32337:6;32397:3;32392:25;;;;32472:3;32467:25;;;;32546:3;32541:25;;;;32621:3;32616:25;;;;32695:3;32690:25;;;;32768:3;32763:25;;;;32842:3;32837:25;;;;32330:532;;32392:25;32411:4;32403:12;;32392:25;;32467;32486:4;32478:12;;32467:25;;32541;32560:4;32552:12;;32541:25;;32616;32635:4;32627:12;;32616:25;;32690;32709:4;32701:12;;32690:25;;32763;32782:4;32774:12;;32763:25;;32837;32856:4;32848:12;;32330:532;;32925:4;:12;;32933:4;32925:12;32921:4023;;-1:-1:-1;;;32976:9:128;32968:26;;32989:4;32984:1;32976:9;;;32975:18;32968:26;32961:33;;32921:4023;33062:4;:12;;33070:4;33062:12;33058:3886;;-1:-1:-1;;;33113:9:128;33105:26;;33126:4;33121:1;33113:9;;;33112:18;33105:26;33098:33;;33058:3886;33199:4;:12;;33207:4;33199:12;33195:3749;;33264:4;33259:1;33251:9;;;33250:18;33297:27;33251:9;33300:11;;;;33313:2;:10;;;33297:2;:27::i;:::-;33290:34;;;;;;;33195:3749;33393:4;:12;;33401:4;33393:12;33389:3555;;-1:-1:-1;;;33436:17:128;;;33448:4;33443:9;;33436:17;33429:24;;33389:3555;33522:4;:11;;33530:3;33522:11;33518:3426;;-1:-1:-1;;;33564:17:128;;;33576:4;33571:9;;33564:17;33557:24;;33518:3426;33650:4;:12;;33658:4;33650:12;33646:3298;;33693:21;33702:2;33696:8;;:2;:8;;;;33711:2;33706;:7;33693:2;:21::i;:::-;33686:28;;;;;;33646:3298;33963:4;:12;;33971:4;33963:12;33959:2985;;34006:2;33999:9;;;;;;33959:2985;34077:4;:12;;34085:4;34077:12;34073:2871;;34120:2;34113:9;;;;;;34073:2871;34191:4;:12;;34199:4;34191:12;34187:2757;;34234:2;34227:9;;;;;;34187:2757;34305:4;:12;;34313:4;34305:12;34301:2643;;34348:2;34341:9;;;;;;34301:2643;34422:4;:12;;34430:4;34422:12;34418:2526;;34465:2;34458:9;;;;;;34418:2526;34582:4;:12;;34590:4;34582:12;34578:2366;;34625:2;34618:9;;;;;;34578:2366;34696:4;:12;;34704:4;34696:12;34692:2252;;34739:2;34732:9;;;;;;34692:2252;34810:4;:12;;34818:4;34810:12;34806:2138;;34853:2;34846:9;;;;;;34806:2138;34924:4;:12;;34932:4;34924:12;34920:2024;;34967:2;34960:9;;;;;;34920:2024;35038:4;:12;;35046:4;35038:12;35034:1910;;35081:2;35074:9;;;;;;35034:1910;35152:4;:12;;35160:4;35152:12;35148:1796;;35195:2;35188:9;;;;;;35148:1796;35267:4;:12;;35275:4;35267:12;35263:1681;;35310:2;35303:9;;;;;;35263:1681;35380:4;:12;;35388:4;35380:12;35376:1568;;35423:2;35416:9;;;;;;35376:1568;35494:4;:12;;35502:4;35494:12;35490:1454;;35537:2;35530:9;;;;;;35490:1454;35686:4;:12;;35694:4;35686:12;35682:1262;;-1:-1:-1;;;35730:7:128;;;35722:16;;35682:1262;35807:4;:12;;35815:4;35807:12;35803:1141;;-1:-1:-1;;;35851:7:128;;;35843:16;;35803:1141;35927:4;:12;;35935:4;35927:12;35923:1021;;-1:-1:-1;;;35971:7:128;;;35963:16;;35923:1021;36048:4;:12;;36056:4;36048:12;36044:900;;-1:-1:-1;;;36092:7:128;;;36084:16;;36044:900;36168:4;:12;;36176:4;36168:12;36164:780;;-1:-1:-1;;;36212:7:128;;;36204:16;;36164:780;36287:4;:12;;36295:4;36287:12;36283:661;;-1:-1:-1;;;36331:7:128;;;36323:16;;36283:661;36407:4;:12;;36415:4;36407:12;36403:541;;-1:-1:-1;;;36451:7:128;;;36443:16;;36403:541;36527:4;:12;;36535:4;36527:12;36523:421;;-1:-1:-1;;;36572:7:128;;;36570:10;36563:17;;36523:421;36649:4;:12;;36657:4;36649:12;36645:299;;36710:2;36692:21;;36698:2;36692:21;;;:29;;36720:1;36692:29;;;36716:1;36692:29;36685:36;;;;;;;;36645:299;36791:4;:12;;36799:4;36791:12;36787:157;;36839:2;36834:7;;:2;:7;;;:15;;36848:1;36834:15;;36787:157;36896:29;;;;;2810:2:283;36896:29:128;;;2792:21:283;2849:2;2829:18;;;2822:30;2888:21;2868:18;;;2861:49;2927:18;;36896:29:128;2608:343:283;36787:157:128;32174:4784;32124:8490;;;37014:6;:14;;37024:4;37014:14;37010:3590;;37073:4;37066:11;;37148:3;37140:11;;;37136:549;;-1:-1:-1;;;37193:21:128;;;37179:36;;37136:549;37300:4;:12;;37308:4;37300:12;:28;;;;37316:4;:12;;37324:4;37316:12;37300:28;37296:389;;;37360:4;:12;;37368:4;37360:12;37356:83;;37409:3;;;37356:83;37464:8;37502:127;37514:10;37509:15;;:20;37502:127;;37594:8;37561:3;37594:8;;;;;37561:3;37502:127;;;37661:1;-1:-1:-1;37654:8:128;;-1:-1:-1;;37654:8:128;37010:3590;37752:6;:14;;37762:4;37752:14;37748:2852;;-1:-1:-1;;37797:8:128;37803:2;37797:8;;;;37790:15;;37748:2852;37872:6;:14;;37882:4;37872:14;37868:2732;;37917:42;37935:2;37940:1;37935:6;37945:1;37934:12;37929:2;:17;37921:26;;:3;:26;;;;37951:4;37920:35;37957:1;37917:2;:42::i;37868:2732::-;38026:6;:14;;38036:4;38026:14;38022:2578;;38071:45;38089:2;38094:1;38089:6;38099:1;38088:12;38083:2;:17;38075:26;;:3;:26;;;;38105:6;38074:37;38113:2;38071;:45::i;38022:2578::-;38184:6;:14;;38194:4;38184:14;38180:2420;;-1:-1:-1;;38235:21:128;38254:1;38249;38244:6;;38243:12;38235:21;;38292:36;;;38363:5;38358:10;;38235:21;;;;;38357:18;38350:25;;38180:2420;38442:6;:14;;38452:4;38442:14;38438:2162;;38487:3;38480:10;;;;;38438:2162;38558:6;:14;;38568:4;38558:14;38554:2046;;38618:2;38623:1;38618:6;38628:1;38617:12;38612:2;:17;38604:26;;:3;:26;;;;38634:4;38603:35;38596:42;;;;;38554:2046;38707:6;:14;;38717:4;38707:14;38703:1897;;38767:2;38772:1;38767:6;38777:1;38766:12;38761:2;:17;38753:26;;:3;:26;;;;38783:6;38752:37;38745:44;;;;;38703:1897;38858:6;:14;;38868:4;38858:14;38854:1746;;-1:-1:-1;;38909:26:128;38933:1;38928;38923:6;;38922:12;38917:2;:17;38909:26;;38971:41;;;39047:5;39042:10;;38909:26;;;;;39041:18;39034:25;;38854:1746;39127:6;:14;;39137:4;39127:14;39123:1477;;-1:-1:-1;;39184:4:128;39178:34;39210:1;39205;39200:6;;39199:12;39194:2;:17;39178:34;;39268:27;;;39248:48;;;39326:10;;39179:9;;;39178:34;;39325:18;39318:25;;39123:1477;39411:6;:14;;39421:4;39411:14;39407:1193;;-1:-1:-1;;39468:6:128;39462:36;39496:1;39491;39486:6;;39485:12;39480:2;:17;39462:36;;39554:29;;;39534:50;;;39614:10;;39463:11;;;39462:36;;39613:18;39606:25;;39407:1193;39700:6;:14;;39710:4;39700:14;39696:904;;-1:-1:-1;;39751:20:128;39769:1;39764;39759:6;;39758:12;39751:20;;39807:36;;;39879:5;39873:11;;39751:20;;;;;39872:19;39865:26;;39696:904;39959:6;:14;;39969:4;39959:14;39955:645;;40004:2;39997:9;;;;;39955:645;40075:6;:14;;40085:4;40075:14;40071:529;;-1:-1:-1;;40126:25:128;40149:1;40144;40139:6;;40138:12;40133:2;:17;40126:25;;40187:41;;;40264:5;40258:11;;40126:25;;;;;40257:19;40250:26;;40071:529;40343:6;:14;;40353:4;40343:14;40339:261;;40388:3;40381:10;;;;;40339:261;40458:6;:14;;40468:4;40458:14;40454:146;;40503:2;40496:9;;;;;19824:782;19910:12;19997:18;;:::i;:::-;-1:-1:-1;20065:4:128;20172:2;20160:14;;;;20152:41;;;;;;;3158:2:283;20152:41:128;;;3140:21:283;3197:2;3177:18;;;3170:30;3236:16;3216:18;;;3209:44;3270:18;;20152:41:128;2956:338:283;20152:41:128;20289:14;;;;;;;:30;;;20307:12;20289:30;20285:102;;;20368:4;20339:5;:15;;;20355:9;20339:26;;;;;;;;;:::i;:::-;:33;;;;:26;;;;;;:33;20285:102;20442:12;;;;;20431:23;;;;:8;;;:23;20498:1;20483:16;;;20468:31;;;20576:13;:11;:13::i;5467:7728::-;5510:12;5596:18;;:::i;:::-;-1:-1:-1;5774:15:128;;:18;;;;5664:4;5934:18;;;;5978;;;;6022;;;;;5664:4;;5754:17;;;;5934:18;5978;6112;;;6126:4;6112:18;6108:6777;;6162:2;6191:4;6186:9;;:14;6182:144;;6302:4;6297:9;;6289:4;:18;6283:24;6182:144;6347:2;:7;;6353:1;6347:7;6343:161;;6383:10;;;;;6415:16;;;;;;;;6383:10;-1:-1:-1;6343:161:128;;;6483:2;6478:7;;6343:161;6132:386;6108:6777;;;6620:10;:18;;6634:4;6620:18;6616:6269;;1745:10;6658:14;;6616:6269;;;6756:10;:18;;6770:4;6756:18;6752:6133;;6799:1;6794:6;;6752:6133;;;6924:10;:18;;6938:4;6924:18;6920:5965;;6977:4;6962:12;;;:19;6999:26;;;:14;;;:26;7050:13;:11;:13::i;:::-;7043:20;;;;;;;;;5467:7728;:::o;6920:5965::-;7189:10;:18;;7203:4;7189:18;7185:5700;;7340:14;;;7336:2708;7185:5700;7336:2708;7510:22;;;;;7506:2538;;7635:10;7648:27;7656:2;7661:10;7656:15;7673:1;7648:7;:27::i;:::-;7759:17;;;;7635:40;;-1:-1:-1;7759:17:128;7737:19;7909:14;7928:1;7903:26;7899:131;;7971:36;7995:11;1277:21:129;1426:15;;;1467:8;1461:4;1454:22;1595:4;1582:18;;1602:19;1578:44;1624:11;1575:61;;1222:430;7971:36:128;7957:50;;7899:131;8116:20;;;;;8083:54;;;;;;;;3472:25:283;;;8083:54:128;3533:23:283;;;3513:18;;;3506:51;8052:11:128;;;;8083:19;:6;:19;;;;3445:18:283;;8083:54:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8051:86;;;;8364:1;8360:2;8356:10;8461:9;8458:1;8454:17;8543:6;8536:5;8533:17;8530:40;;;8563:5;8553:15;;8530:40;;8646:6;8642:2;8639:14;8636:34;;;8666:2;8656:12;;8636:34;8772:3;8767:1;8759:6;8755:14;8750:3;8746:24;8742:34;8735:41;;8872:3;8868:1;8856:9;8847:6;8844:1;8840:14;8836:30;8832:38;8828:48;8821:55;;9027:1;9023;9019;9007:9;9004:1;9000:17;8996:25;8992:33;8988:41;9154:1;9150;9146;9137:6;9125:9;9122:1;9118:17;9114:30;9110:38;9106:46;9102:54;9084:72;;9285:10;9281:15;9275:4;9271:26;9263:34;;9401:3;9393:4;9389:9;9384:3;9380:19;9377:28;9370:35;;;;9547:33;9556:2;9561:10;9556:15;9573:1;9576:3;9547:8;:33::i;:::-;9602:20;;;:38;;;;;;;;;-1:-1:-1;7506:2538:128;;-1:-1:-1;;;7506:2538:128;;9759:18;;;;;9755:289;;9929:2;9924:7;;7185:5700;;9755:289;9983:10;9978:15;;2053:3;10015:10;;9755:289;7185:5700;;;10173:10;:18;;10187:4;10173:18;10169:2716;;10327:15;;;1824:1;10327:15;;:34;;-1:-1:-1;10346:15:128;;;1859:1;10346:15;10327:34;:57;;;-1:-1:-1;10365:19:128;;;1936:1;10365:19;10327:57;10323:1593;;;10413:2;10408:7;;10169:2716;;10323:1593;10539:23;;;;;10535:1381;;10586:10;10599:27;10607:2;10612:10;10607:15;10624:1;10599:7;:27::i;:::-;10702:17;;;;10586:40;;-1:-1:-1;10945:1:128;10937:10;;11039:1;11035:17;11114:13;;;11111:32;;;11136:5;11130:11;;11111:32;11422:14;;;11228:1;11418:22;;;11414:32;;;;11311:26;11335:1;11220:10;;;11315:18;;;11311:26;11410:43;11216:20;;11518:12;11646:17;;;:23;11714:1;11691:20;;;:24;11224:2;-1:-1:-1;11224:2:128;7185:5700;;10169:2716;12118:10;:18;;12132:4;12118:18;12114:771;;12228:2;:7;;12234:1;12228:7;12224:647;;12321:14;;;;;:40;;-1:-1:-1;12339:22:128;;;1978:1;12339:22;12321:40;:62;;;-1:-1:-1;12365:18:128;;;1897:1;12365:18;12321:62;12317:404;;;12416:1;12411:6;;12224:647;;12317:404;12462:15;;;1824:1;12462:15;;:34;;-1:-1:-1;12481:15:128;;;1859:1;12481:15;12462:34;:61;;;-1:-1:-1;12500:23:128;;;2021:1;12500:23;12462:61;:84;;;-1:-1:-1;12527:19:128;;;1936:1;12527:19;12462:84;12458:263;;;12579:1;12574:6;;7185:5700;;12224:647;12772:10;12767:15;;2087:4;12804:11;;12224:647;12960:15;;;;;:23;;;;:18;;;;:23;;;;12997:15;;:23;;;:18;;;;:23;-1:-1:-1;13086:12:128;;;;13075:23;;;:8;;;:23;13142:1;13127:16;13112:31;;;;;13165:13;:11;:13::i;15948:2480::-;16042:12;16128:18;;:::i;:::-;-1:-1:-1;16196:4:128;16228:10;16336:13;;;16345:4;16336:13;16332:1705;;-1:-1:-1;16375:8:128;;;;16332:1705;;;16494:5;:13;;16503:4;16494:13;16490:1547;;16527:14;;;:8;;;:14;16490:1547;;;16657:5;:13;;16666:4;16657:13;16653:1384;;-1:-1:-1;16696:8:128;;;;16653:1384;;;16815:5;:13;;16824:4;16815:13;16811:1226;;16848:14;;;:8;;;:14;16811:1226;;;16989:5;:13;;16998:4;16989:13;16985:1052;;17116:9;17062:17;17042;;;17062;;;;17042:37;17123:2;17116:9;;;;;17098:8;;;:28;17144:22;:8;;;:22;16985:1052;;;17303:5;:13;;17312:4;17303:13;17299:738;;17370:11;17356;;;17370;;;17356:25;17425:2;17418:9;;;;;17400:8;;;:28;17446:22;:8;;;:22;17299:738;;;17627:5;:13;;17636:4;17627:13;17623:414;;17697:3;17678:23;;17684:3;17678:23;;;;;;;:::i;:::-;;17660:42;;:8;;;:42;17738:23;;;;;;;;;;;;;:::i;:::-;;17720:42;;:8;;;:42;17623:414;;;17931:5;:13;;17940:4;17931:13;17927:110;;17981:3;17975:9;;:3;:9;;;;;;;:::i;:::-;;17964:20;;;;:8;;;:20;18013:9;;;;;;;;;;;:::i;:::-;;18002:20;;:8;;;:20;17927:110;18130:14;;;;18126:85;;18193:3;18164:5;:15;;;18180:9;18164:26;;;;;;;;;:::i;:::-;:32;;;;:26;;;;;;:32;18126:85;18265:12;;;;;18254:23;;;;:8;;;:23;18321:1;18306:16;;;18291:31;;;18398:13;:11;:13::i;:::-;18391:20;15948:2480;-1:-1:-1;;;;;;;15948:2480:128:o;23777:1654::-;23953:14;23970:24;23982:11;23970;:24::i;:::-;23953:41;;24102:1;24095:5;24091:13;24088:33;;;24117:1;24114;24107:12;24088:33;24256:2;24450:15;;;24275:2;24264:14;;24252:10;24248:31;24245:1;24241:39;24406:16;;;24191:20;;24391:10;24380:22;;;24376:27;24366:38;24363:60;24892:5;24889:1;24885:13;24963:1;24948:343;24973:2;24970:1;24967:9;24948:343;;;25096:2;25084:15;;;25033:20;25131:12;;;25145:1;25127:20;25168:42;;;;25236:1;25231:42;;;;25120:153;;25168:42;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;25177:31;;25168:42;;25231;22255:1;22248:12;;;22288:2;22281:13;;;22333:2;22320:16;;25240:31;;25120:153;-1:-1:-1;;24991:1:128;24984:9;24948:343;;;-1:-1:-1;;25390:4:128;25383:18;-1:-1:-1;;;;23777:1654:128:o;20810:586::-;21132:20;;;21156:7;21132:32;21125:3;:40;;;21238:14;;21293:17;;21287:24;;;21279:72;;;;;;;4209:2:283;21279:72:128;;;4191:21:283;4248:2;4228:18;;;4221:30;4287:34;4267:18;;;4260:62;4358:5;4338:18;;;4331:33;4381:19;;21279:72:128;4007:399:283;21279:72:128;21365:14;20810:586;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;467:347:283:-;518:8;528:6;582:3;575:4;567:6;563:17;559:27;549:55;;600:1;597;590:12;549:55;-1:-1:-1;623:20:283;;666:18;655:30;;652:50;;;698:1;695;688:12;652:50;735:4;727:6;723:17;711:29;;787:3;780:4;771:6;763;759:19;755:30;752:39;749:59;;;804:1;801;794:12;749:59;467:347;;;;;:::o;819:717::-;909:6;917;925;933;986:2;974:9;965:7;961:23;957:32;954:52;;;1002:1;999;992:12;954:52;1042:9;1029:23;1071:18;1112:2;1104:6;1101:14;1098:34;;;1128:1;1125;1118:12;1098:34;1167:58;1217:7;1208:6;1197:9;1193:22;1167:58;:::i;:::-;1244:8;;-1:-1:-1;1141:84:283;-1:-1:-1;1332:2:283;1317:18;;1304:32;;-1:-1:-1;1348:16:283;;;1345:36;;;1377:1;1374;1367:12;1345:36;;1416:60;1468:7;1457:8;1446:9;1442:24;1416:60;:::i;:::-;819:717;;;;-1:-1:-1;1495:8:283;-1:-1:-1;;;;819:717:283:o;1723:184::-;1775:77;1772:1;1765:88;1872:4;1869:1;1862:15;1896:4;1893:1;1886:15;3568:245;3647:6;3655;3708:2;3696:9;3687:7;3683:23;3679:32;3676:52;;;3724:1;3721;3714:12;3676:52;-1:-1:-1;;3747:16:283;;3803:2;3788:18;;;3782:25;3747:16;;3782:25;;-1:-1:-1;3568:245:283:o;3818:184::-;3870:77;3867:1;3860:88;3967:4;3964:1;3957:15;3991:4;3988:1;3981:15"
func init() { func init() {
if err := json.Unmarshal([]byte(MIPSStorageLayoutJSON), MIPSStorageLayout); err != nil { if err := json.Unmarshal([]byte(MIPSStorageLayoutJSON), MIPSStorageLayout); err != nil {
......
...@@ -15,7 +15,7 @@ var PreimageOracleStorageLayout = new(solc.StorageLayout) ...@@ -15,7 +15,7 @@ var PreimageOracleStorageLayout = new(solc.StorageLayout)
var PreimageOracleDeployedBin = "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063e03110e11161005b578063e03110e114610111578063e159261114610139578063fe4ac08e1461014e578063fef2b4ed146101c357600080fd5b806361238bde146100825780638542cf50146100c05780639a1f5e7f146100fe575b600080fd5b6100ad610090366004610551565b600160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6100ee6100ce366004610551565b600260209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016100b7565b6100ad61010c366004610573565b6101e3565b61012461011f366004610551565b6102b6565b604080519283526020830191909152016100b7565b61014c6101473660046105a5565b6103a7565b005b61014c61015c366004610573565b6000838152600260209081526040808320878452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558684528252808320968352958152858220939093559283529082905291902055565b6100ad6101d1366004610621565b60006020819052908152604090205481565b60006101ee856104b0565b90506101fb836008610669565b8211806102085750602083115b1561023f576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845287528083209483529386528382205581815293849052922055919050565b6000828152600260209081526040808320848452909152812054819060ff1661033f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b506000838152602081815260409091205461035b816008610669565b610366856020610669565b106103845783610377826008610669565b6103819190610681565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018611156103c65763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82161761054b81600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b92915050565b6000806040838503121561056457600080fd5b50508035926020909101359150565b6000806000806080858703121561058957600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000604084860312156105ba57600080fd5b83359250602084013567ffffffffffffffff808211156105d957600080fd5b818601915086601f8301126105ed57600080fd5b8135818111156105fc57600080fd5b87602082850101111561060e57600080fd5b6020830194508093505050509250925092565b60006020828403121561063357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561067c5761067c61063a565b500190565b6000828210156106935761069361063a565b50039056fea164736f6c634300080f000a" var PreimageOracleDeployedBin = "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063e03110e11161005b578063e03110e114610111578063e159261114610139578063fe4ac08e1461014e578063fef2b4ed146101c357600080fd5b806361238bde146100825780638542cf50146100c05780639a1f5e7f146100fe575b600080fd5b6100ad610090366004610551565b600160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6100ee6100ce366004610551565b600260209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016100b7565b6100ad61010c366004610573565b6101e3565b61012461011f366004610551565b6102b6565b604080519283526020830191909152016100b7565b61014c6101473660046105a5565b6103a7565b005b61014c61015c366004610573565b6000838152600260209081526040808320878452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558684528252808320968352958152858220939093559283529082905291902055565b6100ad6101d1366004610621565b60006020819052908152604090205481565b60006101ee856104b0565b90506101fb836008610669565b8211806102085750602083115b1561023f576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845287528083209483529386528382205581815293849052922055919050565b6000828152600260209081526040808320848452909152812054819060ff1661033f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b506000838152602081815260409091205461035b816008610669565b610366856020610669565b106103845783610377826008610669565b6103819190610681565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018611156103c65763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82161761054b81600090815233602052604090207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b92915050565b6000806040838503121561056457600080fd5b50508035926020909101359150565b6000806000806080858703121561058957600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000604084860312156105ba57600080fd5b83359250602084013567ffffffffffffffff808211156105d957600080fd5b818601915086601f8301126105ed57600080fd5b8135818111156105fc57600080fd5b87602082850101111561060e57600080fd5b6020830194508093505050509250925092565b60006020828403121561063357600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561067c5761067c61063a565b500190565b6000828210156106935761069361063a565b50039056fea164736f6c634300080f000a"
var PreimageOracleDeployedSourceMap = "306:4436:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;537:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:25:281;;;401:2;386:18;537:68:128;;;;;;;;680:66;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;614:14:281;;607:22;589:41;;577:2;562:18;680:66:128;449:187:281;1938:1165:128;;;;;;:::i;:::-;;:::i;789:536::-;;;;;;:::i;:::-;;:::i;:::-;;;;1205:25:281;;;1261:2;1246:18;;1239:34;;;;1178:18;789:536:128;1031:248:281;3145:1595:128;;;;;;:::i;:::-;;:::i;:::-;;1672:224;;;;;;:::i;:::-;1767:19;;;;:14;:19;;;;;;;;:31;;;;;;;;:38;;;;1801:4;1767:38;;;;;;1815:18;;;;;;;;:30;;;;;;;;;:37;;;;1862:20;;;;;;;;;;:27;1672:224;419:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;1938:1165;2100:12;2205:36;2234:6;2205:28;:36::i;:::-;2198:43;-1:-1:-1;2335:9:128;:5;2343:1;2335:9;:::i;:::-;2321:11;:23;:37;;;;2356:2;2348:5;:10;2321:37;2317:90;;;2381:15;;;;;;;;;;;;;;2317:90;2476:12;2576:4;2569:18;;;2677:3;2673:15;;;2660:29;;2709:4;2702:19;;;;2811:18;;2901:20;;;:14;:20;;;;;;:33;;;;;;;;:40;;;;2937:4;2901:40;;;;;;2951:19;;;;;;;;:32;;;;;;;;;:39;3067:21;;;;;;;;;:29;2916:4;1938:1165;-1:-1:-1;1938:1165:128:o;789:536::-;865:12;914:20;;;:14;:20;;;;;;;;:29;;;;;;;;;865:12;;914:29;;906:62;;;;;;;3229:2:281;906:62:128;;;3211:21:281;3268:2;3248:18;;;3241:30;3307:22;3287:18;;;3280:50;3347:18;;906:62:128;;;;;;;;-1:-1:-1;1099:14:128;1116:21;;;1087:2;1116:21;;;;;;;;1167:10;1116:21;1176:1;1167:10;:::i;:::-;1151:12;:7;1161:2;1151:12;:::i;:::-;:26;1147:87;;1216:7;1203:10;:6;1212:1;1203:10;:::i;:::-;:20;;;;:::i;:::-;1193:30;;1147:87;-1:-1:-1;1290:19:128;;;;:13;:19;;;;;;;;:28;;;;;;;;;;;;789:536;;-1:-1:-1;789:536:128:o;3145:1595::-;3441:4;3428:18;3246:12;;3570:1;3560:12;;3544:29;;3541:210;;;3645:10;3642:1;3635:21;3735:1;3729:4;3722:15;3541:210;3994:3;3990:14;;;3894:4;3978:27;4025:11;3999:4;4144:16;4025:11;4126:41;4357:29;;;4361:11;4357:29;4351:36;4409:20;;;;4556:19;4549:27;4578:11;4546:44;4609:19;;;;4587:1;4609:19;;;;;;;;:32;;;;;;;;:39;;;;4644:4;4609:39;;;;;;4658:18;;;;;;;;:31;;;;;;;;;:38;;;;4706:20;;;;;;;;;;;:27;;;;-1:-1:-1;;;;3145:1595:128:o;492:353:127:-;752:11;777:19;765:32;;749:49;824:14;749:49;1277:21;1426:15;;;1467:8;1461:4;1454:22;1595:4;1582:18;;1602:19;1578:44;1624:11;1575:61;;1222:430;824:14;817:21;492:353;-1:-1:-1;;492:353:127:o;14:248:281:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:281;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:281:o;641:385::-;727:6;735;743;751;804:3;792:9;783:7;779:23;775:33;772:53;;;821:1;818;811:12;772:53;-1:-1:-1;;844:23:281;;;914:2;899:18;;886:32;;-1:-1:-1;965:2:281;950:18;;937:32;;1016:2;1001:18;988:32;;-1:-1:-1;641:385:281;-1:-1:-1;641:385:281:o;1284:659::-;1363:6;1371;1379;1432:2;1420:9;1411:7;1407:23;1403:32;1400:52;;;1448:1;1445;1438:12;1400:52;1484:9;1471:23;1461:33;;1545:2;1534:9;1530:18;1517:32;1568:18;1609:2;1601:6;1598:14;1595:34;;;1625:1;1622;1615:12;1595:34;1663:6;1652:9;1648:22;1638:32;;1708:7;1701:4;1697:2;1693:13;1689:27;1679:55;;1730:1;1727;1720:12;1679:55;1770:2;1757:16;1796:2;1788:6;1785:14;1782:34;;;1812:1;1809;1802:12;1782:34;1857:7;1852:2;1843:6;1839:2;1835:15;1831:24;1828:37;1825:57;;;1878:1;1875;1868:12;1825:57;1909:2;1905;1901:11;1891:21;;1931:6;1921:16;;;;;1284:659;;;;;:::o;2338:180::-;2397:6;2450:2;2438:9;2429:7;2425:23;2421:32;2418:52;;;2466:1;2463;2456:12;2418:52;-1:-1:-1;2489:23:281;;2338:180;-1:-1:-1;2338:180:281:o;2705:184::-;2757:77;2754:1;2747:88;2854:4;2851:1;2844:15;2878:4;2875:1;2868:15;2894:128;2934:3;2965:1;2961:6;2958:1;2955:13;2952:39;;;2971:18;;:::i;:::-;-1:-1:-1;3007:9:281;;2894:128::o;3376:125::-;3416:4;3444:1;3441;3438:8;3435:34;;;3449:18;;:::i;:::-;-1:-1:-1;3486:9:281;;3376:125::o" var PreimageOracleDeployedSourceMap = "306:4436:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;537:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:25:283;;;401:2;386:18;537:68:130;;;;;;;;680:66;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;614:14:283;;607:22;589:41;;577:2;562:18;680:66:130;449:187:283;1938:1165:130;;;;;;:::i;:::-;;:::i;789:536::-;;;;;;:::i;:::-;;:::i;:::-;;;;1205:25:283;;;1261:2;1246:18;;1239:34;;;;1178:18;789:536:130;1031:248:283;3145:1595:130;;;;;;:::i;:::-;;:::i;:::-;;1672:224;;;;;;:::i;:::-;1767:19;;;;:14;:19;;;;;;;;:31;;;;;;;;:38;;;;1801:4;1767:38;;;;;;1815:18;;;;;;;;:30;;;;;;;;;:37;;;;1862:20;;;;;;;;;;:27;1672:224;419:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;1938:1165;2100:12;2205:36;2234:6;2205:28;:36::i;:::-;2198:43;-1:-1:-1;2335:9:130;:5;2343:1;2335:9;:::i;:::-;2321:11;:23;:37;;;;2356:2;2348:5;:10;2321:37;2317:90;;;2381:15;;;;;;;;;;;;;;2317:90;2476:12;2576:4;2569:18;;;2677:3;2673:15;;;2660:29;;2709:4;2702:19;;;;2811:18;;2901:20;;;:14;:20;;;;;;:33;;;;;;;;:40;;;;2937:4;2901:40;;;;;;2951:19;;;;;;;;:32;;;;;;;;;:39;3067:21;;;;;;;;;:29;2916:4;1938:1165;-1:-1:-1;1938:1165:130:o;789:536::-;865:12;914:20;;;:14;:20;;;;;;;;:29;;;;;;;;;865:12;;914:29;;906:62;;;;;;;3229:2:283;906:62:130;;;3211:21:283;3268:2;3248:18;;;3241:30;3307:22;3287:18;;;3280:50;3347:18;;906:62:130;;;;;;;;-1:-1:-1;1099:14:130;1116:21;;;1087:2;1116:21;;;;;;;;1167:10;1116:21;1176:1;1167:10;:::i;:::-;1151:12;:7;1161:2;1151:12;:::i;:::-;:26;1147:87;;1216:7;1203:10;:6;1212:1;1203:10;:::i;:::-;:20;;;;:::i;:::-;1193:30;;1147:87;-1:-1:-1;1290:19:130;;;;:13;:19;;;;;;;;:28;;;;;;;;;;;;789:536;;-1:-1:-1;789:536:130:o;3145:1595::-;3441:4;3428:18;3246:12;;3570:1;3560:12;;3544:29;;3541:210;;;3645:10;3642:1;3635:21;3735:1;3729:4;3722:15;3541:210;3994:3;3990:14;;;3894:4;3978:27;4025:11;3999:4;4144:16;4025:11;4126:41;4357:29;;;4361:11;4357:29;4351:36;4409:20;;;;4556:19;4549:27;4578:11;4546:44;4609:19;;;;4587:1;4609:19;;;;;;;;:32;;;;;;;;:39;;;;4644:4;4609:39;;;;;;4658:18;;;;;;;;:31;;;;;;;;;:38;;;;4706:20;;;;;;;;;;;:27;;;;-1:-1:-1;;;;3145:1595:130:o;492:353:129:-;752:11;777:19;765:32;;749:49;824:14;749:49;1277:21;1426:15;;;1467:8;1461:4;1454:22;1595:4;1582:18;;1602:19;1578:44;1624:11;1575:61;;1222:430;824:14;817:21;492:353;-1:-1:-1;;492:353:129:o;14:248:283:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:283;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:283:o;641:385::-;727:6;735;743;751;804:3;792:9;783:7;779:23;775:33;772:53;;;821:1;818;811:12;772:53;-1:-1:-1;;844:23:283;;;914:2;899:18;;886:32;;-1:-1:-1;965:2:283;950:18;;937:32;;1016:2;1001:18;988:32;;-1:-1:-1;641:385:283;-1:-1:-1;641:385:283:o;1284:659::-;1363:6;1371;1379;1432:2;1420:9;1411:7;1407:23;1403:32;1400:52;;;1448:1;1445;1438:12;1400:52;1484:9;1471:23;1461:33;;1545:2;1534:9;1530:18;1517:32;1568:18;1609:2;1601:6;1598:14;1595:34;;;1625:1;1622;1615:12;1595:34;1663:6;1652:9;1648:22;1638:32;;1708:7;1701:4;1697:2;1693:13;1689:27;1679:55;;1730:1;1727;1720:12;1679:55;1770:2;1757:16;1796:2;1788:6;1785:14;1782:34;;;1812:1;1809;1802:12;1782:34;1857:7;1852:2;1843:6;1839:2;1835:15;1831:24;1828:37;1825:57;;;1878:1;1875;1868:12;1825:57;1909:2;1905;1901:11;1891:21;;1931:6;1921:16;;;;;1284:659;;;;;:::o;2338:180::-;2397:6;2450:2;2438:9;2429:7;2425:23;2421:32;2418:52;;;2466:1;2463;2456:12;2418:52;-1:-1:-1;2489:23:283;;2338:180;-1:-1:-1;2338:180:283:o;2705:184::-;2757:77;2754:1;2747:88;2854:4;2851:1;2844:15;2878:4;2875:1;2868:15;2894:128;2934:3;2965:1;2961:6;2958:1;2955:13;2952:39;;;2971:18;;:::i;:::-;-1:-1:-1;3007:9:283;;2894:128::o;3376:125::-;3416:4;3444:1;3441;3438:8;3435:34;;;3449:18;;:::i;:::-;-1:-1:-1;3486:9:283;;3376:125::o"
func init() { func init() {
if err := json.Unmarshal([]byte(PreimageOracleStorageLayoutJSON), PreimageOracleStorageLayout); err != nil { if err := json.Unmarshal([]byte(PreimageOracleStorageLayoutJSON), PreimageOracleStorageLayout); err != nil {
......
...@@ -28,7 +28,7 @@ type MemoryStateDB struct { ...@@ -28,7 +28,7 @@ type MemoryStateDB struct {
func NewMemoryStateDB(genesis *core.Genesis) *MemoryStateDB { func NewMemoryStateDB(genesis *core.Genesis) *MemoryStateDB {
if genesis == nil { if genesis == nil {
genesis = core.DeveloperGenesisBlock(15, 15_000_000, common.Address{}) genesis = core.DeveloperGenesisBlock(15_000_000, common.Address{})
} }
return &MemoryStateDB{ return &MemoryStateDB{
...@@ -235,12 +235,16 @@ func (db *MemoryStateDB) DeleteState(addr common.Address, key common.Hash) { ...@@ -235,12 +235,16 @@ func (db *MemoryStateDB) DeleteState(addr common.Address, key common.Hash) {
db.genesis.Alloc[addr] = account db.genesis.Alloc[addr] = account
} }
func (db *MemoryStateDB) Suicide(common.Address) bool { func (db *MemoryStateDB) SelfDestruct(common.Address) {
panic("Suicide unimplemented") panic("SelfDestruct unimplemented")
} }
func (db *MemoryStateDB) HasSuicided(common.Address) bool { func (db *MemoryStateDB) HasSelfDestructed(common.Address) bool {
panic("HasSuicided unimplemented") panic("HasSelfDestructed unimplemented")
}
func (db *MemoryStateDB) Selfdestruct6780(common.Address) {
panic("Selfdestruct6780 unimplemented")
} }
// Exist reports whether the given account exists in state. // Exist reports whether the given account exists in state.
......
...@@ -4,7 +4,7 @@ import ( ...@@ -4,7 +4,7 @@ import (
"math/big" "math/big"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/consensus/misc" "github.com/ethereum/go-ethereum/consensus/misc/eip1559"
"github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
...@@ -67,7 +67,7 @@ func (s *L1Miner) ActL1StartBlock(timeDelta uint64) Action { ...@@ -67,7 +67,7 @@ func (s *L1Miner) ActL1StartBlock(timeDelta uint64) Action {
MixDigest: common.Hash{}, // TODO: maybe randomize this (prev-randao value) MixDigest: common.Hash{}, // TODO: maybe randomize this (prev-randao value)
} }
if s.l1Cfg.Config.IsLondon(header.Number) { if s.l1Cfg.Config.IsLondon(header.Number) {
header.BaseFee = misc.CalcBaseFee(s.l1Cfg.Config, parent) header.BaseFee = eip1559.CalcBaseFee(s.l1Cfg.Config, parent)
// At the transition, double the gas limit so the gas target is equal to the old gas limit. // At the transition, double the gas limit so the gas target is equal to the old gas limit.
if !s.l1Cfg.Config.IsLondon(parent.Number) { if !s.l1Cfg.Config.IsLondon(parent.Number) {
header.GasLimit = parent.GasLimit * s.l1Cfg.Config.ElasticityMultiplier() header.GasLimit = parent.GasLimit * s.l1Cfg.Config.ElasticityMultiplier()
...@@ -151,7 +151,7 @@ func (s *L1Miner) ActL1EndBlock(t Testing) { ...@@ -151,7 +151,7 @@ func (s *L1Miner) ActL1EndBlock(t Testing) {
} }
// Write state changes to db // Write state changes to db
root, err := s.l1BuildingState.Commit(s.l1Cfg.Config.IsEIP158(s.l1BuildingHeader.Number)) root, err := s.l1BuildingState.Commit(s.l1BuildingHeader.Number.Uint64(), s.l1Cfg.Config.IsEIP158(s.l1BuildingHeader.Number))
if err != nil { if err != nil {
t.Fatalf("l1 state write error: %v", err) t.Fatalf("l1 state write error: %v", err)
} }
......
...@@ -161,12 +161,12 @@ func (s *L1Replica) MockL1RPCErrors(fn func() error) { ...@@ -161,12 +161,12 @@ func (s *L1Replica) MockL1RPCErrors(fn func() error) {
} }
func (s *L1Replica) EthClient() *ethclient.Client { func (s *L1Replica) EthClient() *ethclient.Client {
cl, _ := s.node.Attach() // never errors cl := s.node.Attach()
return ethclient.NewClient(cl) return ethclient.NewClient(cl)
} }
func (s *L1Replica) RPCClient() client.RPC { func (s *L1Replica) RPCClient() client.RPC {
cl, _ := s.node.Attach() // never errors cl := s.node.Attach()
return testutils.RPCErrFaker{ return testutils.RPCErrFaker{
RPC: client.NewBaseRPCClient(cl), RPC: client.NewBaseRPCClient(cl),
ErrFn: func() error { ErrFn: func() error {
......
...@@ -132,17 +132,17 @@ func (e *engineApiBackend) Genesis() *core.Genesis { ...@@ -132,17 +132,17 @@ func (e *engineApiBackend) Genesis() *core.Genesis {
} }
func (s *L2Engine) EthClient() *ethclient.Client { func (s *L2Engine) EthClient() *ethclient.Client {
cl, _ := s.node.Attach() // never errors cl := s.node.Attach()
return ethclient.NewClient(cl) return ethclient.NewClient(cl)
} }
func (s *L2Engine) GethClient() *gethclient.Client { func (s *L2Engine) GethClient() *gethclient.Client {
cl, _ := s.node.Attach() // never errors cl := s.node.Attach()
return gethclient.New(cl) return gethclient.New(cl)
} }
func (e *L2Engine) RPCClient() client.RPC { func (e *L2Engine) RPCClient() client.RPC {
cl, _ := e.node.Attach() // never errors cl := e.node.Attach()
return testutils.RPCErrFaker{ return testutils.RPCErrFaker{
RPC: client.NewBaseRPCClient(cl), RPC: client.NewBaseRPCClient(cl),
ErrFn: func() error { ErrFn: func() error {
......
...@@ -7,6 +7,7 @@ import ( ...@@ -7,6 +7,7 @@ import (
"testing" "testing"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/txpool"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/eth/ethconfig" "github.com/ethereum/go-ethereum/eth/ethconfig"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
...@@ -94,7 +95,7 @@ func TestReorgOrphanBlock(gt *testing.T) { ...@@ -94,7 +95,7 @@ func TestReorgOrphanBlock(gt *testing.T) {
miner.ActL1SetFeeRecipient(common.Address{'C'}) miner.ActL1SetFeeRecipient(common.Address{'C'})
// note: the geth tx pool reorgLoop is too slow (responds to chain head events, but async), // note: the geth tx pool reorgLoop is too slow (responds to chain head events, but async),
// and there's no way to manually trigger runReorg, so we re-insert it ourselves. // and there's no way to manually trigger runReorg, so we re-insert it ourselves.
require.NoError(t, miner.eth.TxPool().AddLocal(batchTx)) require.NoError(t, miner.eth.TxPool().Add([]*txpool.Transaction{{Tx: batchTx}}, true, true)[0])
// need to re-insert previously included tx into the block // need to re-insert previously included tx into the block
miner.ActL1IncludeTx(sd.RollupCfg.Genesis.SystemConfig.BatcherAddr)(t) miner.ActL1IncludeTx(sd.RollupCfg.Genesis.SystemConfig.BatcherAddr)(t)
miner.ActL1EndBlock(t) miner.ActL1EndBlock(t)
...@@ -173,7 +174,7 @@ func TestReorgFlipFlop(gt *testing.T) { ...@@ -173,7 +174,7 @@ func TestReorgFlipFlop(gt *testing.T) {
// re-include the batch tx that submitted L2 chain data that pointed to A0, in the new block B1 // re-include the batch tx that submitted L2 chain data that pointed to A0, in the new block B1
miner.ActL1SetFeeRecipient(common.Address{'B', 1}) miner.ActL1SetFeeRecipient(common.Address{'B', 1})
miner.ActL1StartBlock(12)(t) miner.ActL1StartBlock(12)(t)
require.NoError(t, miner.eth.TxPool().AddLocal(batchTxA)) require.NoError(t, miner.eth.TxPool().Add([]*txpool.Transaction{{Tx: batchTxA}}, true, true)[0])
miner.ActL1IncludeTx(sd.RollupCfg.Genesis.SystemConfig.BatcherAddr)(t) miner.ActL1IncludeTx(sd.RollupCfg.Genesis.SystemConfig.BatcherAddr)(t)
miner.ActL1EndBlock(t) miner.ActL1EndBlock(t)
...@@ -229,7 +230,7 @@ func TestReorgFlipFlop(gt *testing.T) { ...@@ -229,7 +230,7 @@ func TestReorgFlipFlop(gt *testing.T) {
miner.ActL1SetFeeRecipient(common.Address{'A', 2}) miner.ActL1SetFeeRecipient(common.Address{'A', 2})
miner.ActL1StartBlock(12)(t) miner.ActL1StartBlock(12)(t)
require.NoError(t, miner.eth.TxPool().AddLocal(batchTxA)) // replay chain A batches, but now in A2 instead of A1 require.NoError(t, miner.eth.TxPool().Add([]*txpool.Transaction{{Tx: batchTxA}}, true, true)[0]) // replay chain A batches, but now in A2 instead of A1
miner.ActL1IncludeTx(sd.RollupCfg.Genesis.SystemConfig.BatcherAddr)(t) miner.ActL1IncludeTx(sd.RollupCfg.Genesis.SystemConfig.BatcherAddr)(t)
miner.ActL1EndBlock(t) miner.ActL1EndBlock(t)
......
...@@ -720,8 +720,7 @@ func TestSystemP2PAltSync(t *testing.T) { ...@@ -720,8 +720,7 @@ func TestSystemP2PAltSync(t *testing.T) {
_, err = sys.Mocknet.ConnectPeers(sys.RollupNodes["bob"].P2P().Host().ID(), syncerNode.P2P().Host().ID()) _, err = sys.Mocknet.ConnectPeers(sys.RollupNodes["bob"].P2P().Host().ID(), syncerNode.P2P().Host().ID())
require.NoError(t, err) require.NoError(t, err)
rpc, err := syncerL2Engine.Attach() rpc := syncerL2Engine.Attach()
require.NoError(t, err)
l2Verif := ethclient.NewClient(rpc) l2Verif := ethclient.NewClient(rpc)
// It may take a while to sync, but eventually we should see the sequenced data show up // It may take a while to sync, but eventually we should see the sequenced data show up
......
...@@ -242,19 +242,16 @@ var ( ...@@ -242,19 +242,16 @@ var (
"The superchain-registry is experimental, and the availability of configurations may change."+ "The superchain-registry is experimental, and the availability of configurations may change."+
"Available networks: %s", strings.Join(chaincfg.BetaAvailableNetworks(), ", ")), "Available networks: %s", strings.Join(chaincfg.BetaAvailableNetworks(), ", ")),
EnvVars: prefixEnvVars("BETA_EXTRA_NETWORKS"), EnvVars: prefixEnvVars("BETA_EXTRA_NETWORKS"),
Hidden: true,
} }
BetaRollupHalt = &cli.StringFlag{ BetaRollupHalt = &cli.StringFlag{
Name: "beta.rollup.halt", Name: "beta.rollup.halt",
Usage: "Beta feature: opt-in option to halt on incompatible protocol version requirements of the given level (major/minor/patch/none), as signaled onchain in L1", Usage: "Beta feature: opt-in option to halt on incompatible protocol version requirements of the given level (major/minor/patch/none), as signaled onchain in L1",
EnvVars: prefixEnvVars("BETA_ROLLUP_HALT"), EnvVars: prefixEnvVars("BETA_ROLLUP_HALT"),
Hidden: true,
} }
BetaRollupLoadProtocolVersions = &cli.BoolFlag{ BetaRollupLoadProtocolVersions = &cli.BoolFlag{
Name: "beta.rollup.load-protocol-versions", Name: "beta.rollup.load-protocol-versions",
Usage: "Beta feature: load protocol versions from the superchain L1 ProtocolVersions contract (if available), and report in logs and metrics", Usage: "Beta feature: load protocol versions from the superchain L1 ProtocolVersions contract (if available), and report in logs and metrics",
EnvVars: prefixEnvVars("BETA_ROLLUP_LOAD_PROTOCOL_VERSIONS"), EnvVars: prefixEnvVars("BETA_ROLLUP_LOAD_PROTOCOL_VERSIONS"),
Hidden: true,
} }
CanyonOverrideFlag = &cli.Uint64Flag{ CanyonOverrideFlag = &cli.Uint64Flag{
Name: "override.canyon", Name: "override.canyon",
......
...@@ -91,12 +91,12 @@ func (n *OpNode) init(ctx context.Context, cfg *Config, snapshotLog log.Logger) ...@@ -91,12 +91,12 @@ func (n *OpNode) init(ctx context.Context, cfg *Config, snapshotLog log.Logger)
if err := n.initL1(ctx, cfg); err != nil { if err := n.initL1(ctx, cfg); err != nil {
return fmt.Errorf("failed to init L1: %w", err) return fmt.Errorf("failed to init L1: %w", err)
} }
if err := n.initRuntimeConfig(ctx, cfg); err != nil {
return fmt.Errorf("failed to init the runtime config: %w", err)
}
if err := n.initL2(ctx, cfg, snapshotLog); err != nil { if err := n.initL2(ctx, cfg, snapshotLog); err != nil {
return fmt.Errorf("failed to init L2: %w", err) return fmt.Errorf("failed to init L2: %w", err)
} }
if err := n.initRuntimeConfig(ctx, cfg); err != nil { // depends on L2, to signal initial runtime values to
return fmt.Errorf("failed to init the runtime config: %w", err)
}
if err := n.initRPCSync(ctx, cfg); err != nil { if err := n.initRPCSync(ctx, cfg); err != nil {
return fmt.Errorf("failed to init RPC sync: %w", err) return fmt.Errorf("failed to init RPC sync: %w", err)
} }
......
...@@ -222,7 +222,7 @@ func FuzzUnmarshallLogEvent(f *testing.F) { ...@@ -222,7 +222,7 @@ func FuzzUnmarshallLogEvent(f *testing.F) {
} }
state.SetBalance(from, BytesToBigInt([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff})) state.SetBalance(from, BytesToBigInt([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}))
state.SetCode(addr, common.FromHex(bindings.OptimismPortalDeployedBin)) state.SetCode(addr, common.FromHex(bindings.OptimismPortalDeployedBin))
_, err = state.Commit(false) _, err = state.Commit(0, false)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
......
...@@ -24,6 +24,7 @@ const ( ...@@ -24,6 +24,7 @@ const (
pgnSepolia = 58008 pgnSepolia = 58008
zoraGoerli = 999 zoraGoerli = 999
zoraMainnet = 7777777 zoraMainnet = 7777777
labsDevnet = 997
) )
// LoadOPStackRollupConfig loads the rollup configuration of the requested chain ID from the superchain-registry. // LoadOPStackRollupConfig loads the rollup configuration of the requested chain ID from the superchain-registry.
...@@ -59,13 +60,15 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) { ...@@ -59,13 +60,15 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) {
} }
regolithTime := uint64(0) regolithTime := uint64(0)
// two goerli testnets test-ran Bedrock and later upgraded to Regolith. // three goerli testnets test-ran Bedrock and later upgraded to Regolith.
// All other OP-Stack chains have Regolith enabled from the start. // All other OP-Stack chains have Regolith enabled from the start.
switch chainID { switch chainID {
case baseGoerli: case baseGoerli:
regolithTime = 1683219600 regolithTime = 1683219600
case opGoerli: case opGoerli:
regolithTime = 1679079600 regolithTime = 1679079600
case labsDevnet:
regolithTime = 1677984480
} }
cfg := &Config{ cfg := &Config{
...@@ -96,5 +99,12 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) { ...@@ -96,5 +99,12 @@ func LoadOPStackRollupConfig(chainID uint64) (*Config, error) {
DepositContractAddress: depositContractAddress, DepositContractAddress: depositContractAddress,
L1SystemConfigAddress: common.Address(chConfig.SystemConfigAddr), L1SystemConfigAddress: common.Address(chConfig.SystemConfigAddr),
} }
if superChain.Config.ProtocolVersionsAddr != nil { // Set optional protocol versions address
cfg.ProtocolVersionsAddress = common.Address(*superChain.Config.ProtocolVersionsAddr)
}
if chainID == labsDevnet {
cfg.ChannelTimeout = 120
cfg.MaxSequencerDrift = 1200
}
return cfg, nil return cfg, nil
} }
...@@ -136,7 +136,7 @@ func TestUpdateState(t *testing.T) { ...@@ -136,7 +136,7 @@ func TestUpdateState(t *testing.T) {
require.Equal(t, []byte{1}, statedb.GetCode(codeAccount)) require.Equal(t, []byte{1}, statedb.GetCode(codeAccount))
// Changes should be available under the new state root after committing // Changes should be available under the new state root after committing
newRoot, err := statedb.Commit(false) newRoot, err := statedb.Commit(genesisBlock.NumberU64()+1, false)
require.NoError(t, err) require.NoError(t, err)
err = statedb.Database().TrieDB().Commit(newRoot, true) err = statedb.Database().TrieDB().Commit(newRoot, true)
require.NoError(t, err) require.NoError(t, err)
......
...@@ -8,7 +8,7 @@ import ( ...@@ -8,7 +8,7 @@ import (
"github.com/ethereum-optimism/optimism/op-service/eth" "github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/consensus" "github.com/ethereum/go-ethereum/consensus"
"github.com/ethereum/go-ethereum/consensus/misc" "github.com/ethereum/go-ethereum/consensus/misc/eip1559"
"github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
...@@ -68,7 +68,7 @@ func NewBlockProcessorFromHeader(provider BlockDataProvider, h *types.Header) (* ...@@ -68,7 +68,7 @@ func NewBlockProcessorFromHeader(provider BlockDataProvider, h *types.Header) (*
return nil, fmt.Errorf("get parent state: %w", err) return nil, fmt.Errorf("get parent state: %w", err)
} }
header.Number = new(big.Int).Add(parentHeader.Number, common.Big1) header.Number = new(big.Int).Add(parentHeader.Number, common.Big1)
header.BaseFee = misc.CalcBaseFee(provider.Config(), parentHeader) header.BaseFee = eip1559.CalcBaseFee(provider.Config(), parentHeader)
header.GasUsed = 0 header.GasUsed = 0
gasPool := new(core.GasPool).AddGas(header.GasLimit) gasPool := new(core.GasPool).AddGas(header.GasLimit)
return &BlockProcessor{ return &BlockProcessor{
...@@ -107,7 +107,7 @@ func (b *BlockProcessor) Assemble() (*types.Block, error) { ...@@ -107,7 +107,7 @@ func (b *BlockProcessor) Assemble() (*types.Block, error) {
} }
func (b *BlockProcessor) Commit() error { func (b *BlockProcessor) Commit() error {
root, err := b.state.Commit(b.dataProvider.Config().IsEIP158(b.header.Number)) root, err := b.state.Commit(b.header.Number.Uint64(), b.dataProvider.Config().IsEIP158(b.header.Number))
if err != nil { if err != nil {
return fmt.Errorf("state write error: %w", err) return fmt.Errorf("state write error: %w", err)
} }
......
...@@ -294,7 +294,7 @@ func (ea *L2EngineAPI) NewPayloadV1(ctx context.Context, payload *eth.ExecutionP ...@@ -294,7 +294,7 @@ func (ea *L2EngineAPI) NewPayloadV1(ctx context.Context, payload *eth.ExecutionP
BaseFeePerGas: payload.BaseFeePerGas.ToBig(), BaseFeePerGas: payload.BaseFeePerGas.ToBig(),
BlockHash: payload.BlockHash, BlockHash: payload.BlockHash,
Transactions: txs, Transactions: txs,
}) }, nil)
if err != nil { if err != nil {
log.Debug("Invalid NewPayload params", "params", payload, "error", err) log.Debug("Invalid NewPayload params", "params", payload, "error", err)
return &eth.PayloadStatusV1{Status: eth.ExecutionInvalidBlockHash}, nil return &eth.PayloadStatusV1{Status: eth.ExecutionInvalidBlockHash}, nil
......
...@@ -94,11 +94,11 @@ func (p *DB) ModifyAncients(f func(ethdb.AncientWriteOp) error) (int64, error) { ...@@ -94,11 +94,11 @@ func (p *DB) ModifyAncients(f func(ethdb.AncientWriteOp) error) (int64, error) {
panic("not supported") panic("not supported")
} }
func (p *DB) TruncateHead(n uint64) error { func (p *DB) TruncateHead(n uint64) (uint64, error) {
panic("not supported") panic("not supported")
} }
func (p *DB) TruncateTail(n uint64) error { func (p *DB) TruncateTail(n uint64) (uint64, error) {
panic("not supported") panic("not supported")
} }
...@@ -114,4 +114,4 @@ func (p *DB) AncientDatadir() (string, error) { ...@@ -114,4 +114,4 @@ func (p *DB) AncientDatadir() (string, error) {
panic("not supported") panic("not supported")
} }
var _ ethdb.KeyValueStore = (*DB)(nil) var _ ethdb.Database = (*DB)(nil)
...@@ -51,7 +51,10 @@ func ReadTrie(root common.Hash, getPreimage func(key common.Hash) []byte) []hexu ...@@ -51,7 +51,10 @@ func ReadTrie(root common.Hash, getPreimage func(key common.Hash) []byte) []hexu
if err != nil { if err != nil {
panic(err) panic(err)
} }
iter := tr.NodeIterator(nil) iter, err := tr.NodeIterator(nil)
if err != nil {
panic(err)
}
// With small lists the iterator seems to use 0x80 (RLP empty string, unlike the others) // With small lists the iterator seems to use 0x80 (RLP empty string, unlike the others)
// as key for item 0, causing it to come last. // as key for item 0, causing it to come last.
......
...@@ -78,7 +78,7 @@ func (ch *Cheater) Close() error { ...@@ -78,7 +78,7 @@ func (ch *Cheater) Close() error {
return ch.DB.Close() return ch.DB.Close()
} }
type HeadFn func(headState *state.StateDB) error type HeadFn func(header *types.Header, headState *state.StateDB) error
// RunAndClose runs the given function on the head-state, and then persists any changes (if not ReadOnly), // RunAndClose runs the given function on the head-state, and then persists any changes (if not ReadOnly),
// and updates the blockchain headers indexes to reflect the new state-root, so geth will believe the cheat // and updates the blockchain headers indexes to reflect the new state-root, so geth will believe the cheat
...@@ -93,7 +93,7 @@ func (ch *Cheater) RunAndClose(fn HeadFn) error { ...@@ -93,7 +93,7 @@ func (ch *Cheater) RunAndClose(fn HeadFn) error {
_ = ch.Close() _ = ch.Close()
return fmt.Errorf("failed to look up head state: %w", err) return fmt.Errorf("failed to look up head state: %w", err)
} }
if err := fn(state); err != nil { if err := fn(preHeader, state); err != nil {
_ = ch.Close() _ = ch.Close()
return fmt.Errorf("failed to run state change: %w", err) return fmt.Errorf("failed to run state change: %w", err)
} }
...@@ -102,7 +102,7 @@ func (ch *Cheater) RunAndClose(fn HeadFn) error { ...@@ -102,7 +102,7 @@ func (ch *Cheater) RunAndClose(fn HeadFn) error {
} }
// commit the changes, and then update the state-root // commit the changes, and then update the state-root
stateRoot, err := state.Commit(true) stateRoot, err := state.Commit(preHeader.Number.Uint64()+1, true)
if err != nil { if err != nil {
_ = ch.Close() _ = ch.Close()
return fmt.Errorf("failed to commit state change: %w", err) return fmt.Errorf("failed to commit state change: %w", err)
...@@ -171,7 +171,7 @@ func (ch *Cheater) RunAndClose(fn HeadFn) error { ...@@ -171,7 +171,7 @@ func (ch *Cheater) RunAndClose(fn HeadFn) error {
// StorageSet modifies the storage of the given address at the given key to the given value. // StorageSet modifies the storage of the given address at the given key to the given value.
func StorageSet(address common.Address, key common.Hash, value common.Hash) HeadFn { func StorageSet(address common.Address, key common.Hash, value common.Hash) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
headState.SetState(address, key, value) headState.SetState(address, key, value)
return nil return nil
} }
...@@ -179,7 +179,7 @@ func StorageSet(address common.Address, key common.Hash, value common.Hash) Head ...@@ -179,7 +179,7 @@ func StorageSet(address common.Address, key common.Hash, value common.Hash) Head
// StorageGet just reads the storage of the given address at the given key. // StorageGet just reads the storage of the given address at the given key.
func StorageGet(address common.Address, key common.Hash, w io.Writer) HeadFn { func StorageGet(address common.Address, key common.Hash, w io.Writer) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
value := headState.GetState(address, key) value := headState.GetState(address, key)
_, err := io.WriteString(w, value.Hex()) _, err := io.WriteString(w, value.Hex())
return err return err
...@@ -191,7 +191,7 @@ func StorageGet(address common.Address, key common.Hash, w io.Writer) HeadFn { ...@@ -191,7 +191,7 @@ func StorageGet(address common.Address, key common.Hash, w io.Writer) HeadFn {
// Combined with StoragePatch this allows for quick surgery of 1 account in one database, // Combined with StoragePatch this allows for quick surgery of 1 account in one database,
// to another account (maybe even in a different database!). // to another account (maybe even in a different database!).
func StorageReadAll(address common.Address, w io.Writer) HeadFn { func StorageReadAll(address common.Address, w io.Writer) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
storage, err := headState.StorageTrie(address) storage, err := headState.StorageTrie(address)
if err != nil { if err != nil {
return fmt.Errorf("failed to open storage trie of addr %s: %w", address, err) return fmt.Errorf("failed to open storage trie of addr %s: %w", address, err)
...@@ -199,7 +199,11 @@ func StorageReadAll(address common.Address, w io.Writer) HeadFn { ...@@ -199,7 +199,11 @@ func StorageReadAll(address common.Address, w io.Writer) HeadFn {
if storage == nil { if storage == nil {
return fmt.Errorf("no storage trie in state for account %s", address) return fmt.Errorf("no storage trie in state for account %s", address)
} }
iter := trie.NewIterator(storage.NodeIterator(nil)) nodeIter, err := storage.NodeIterator(nil)
if err != nil {
return fmt.Errorf("failed to create node iterator for storage of %s: %w", address, err)
}
iter := trie.NewIterator(nodeIter)
for iter.Next() { for iter.Next() {
if _, err := fmt.Fprintf(w, "+ %x = %x\n", iter.Key, dbValueToHash(iter.Value)); err != nil { if _, err := fmt.Fprintf(w, "+ %x = %x\n", iter.Key, dbValueToHash(iter.Value)); err != nil {
return err return err
...@@ -224,7 +228,7 @@ func dbValueToHash(enc []byte) common.Hash { ...@@ -224,7 +228,7 @@ func dbValueToHash(enc []byte) common.Hash {
// StorageDiff compares the storage of two different accounts, and writes a patch with differences. // StorageDiff compares the storage of two different accounts, and writes a patch with differences.
// Each difference is expressed with 1 character + or - to indicate the change from a to b, followed by key = value. // Each difference is expressed with 1 character + or - to indicate the change from a to b, followed by key = value.
func StorageDiff(out io.Writer, addressA, addressB common.Address) HeadFn { func StorageDiff(out io.Writer, addressA, addressB common.Address) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
aStorage, err := headState.StorageTrie(addressA) aStorage, err := headState.StorageTrie(addressA)
if err != nil { if err != nil {
return fmt.Errorf("failed to open storage trie of addr A %s: %w", addressA, err) return fmt.Errorf("failed to open storage trie of addr A %s: %w", addressA, err)
...@@ -239,8 +243,16 @@ func StorageDiff(out io.Writer, addressA, addressB common.Address) HeadFn { ...@@ -239,8 +243,16 @@ func StorageDiff(out io.Writer, addressA, addressB common.Address) HeadFn {
if bStorage == nil { if bStorage == nil {
return fmt.Errorf("no storage trie in state for account B %s", addressB) return fmt.Errorf("no storage trie in state for account B %s", addressB)
} }
aIter := trie.NewIterator(aStorage.NodeIterator(nil)) aNodeIter, err := aStorage.NodeIterator(nil)
bIter := trie.NewIterator(bStorage.NodeIterator(nil)) if err != nil {
return fmt.Errorf("failed to create node iterator for storage of %s (A): %w", addressA, err)
}
bNodeIter, err := bStorage.NodeIterator(nil)
if err != nil {
return fmt.Errorf("failed to create node iterator for storage of %s (b): %w", addressB, err)
}
aIter := trie.NewIterator(aNodeIter)
bIter := trie.NewIterator(bNodeIter)
hasA := aIter.Next() hasA := aIter.Next()
hasB := bIter.Next() hasB := bIter.Next()
for { for {
...@@ -284,7 +296,7 @@ func StorageDiff(out io.Writer, addressA, addressB common.Address) HeadFn { ...@@ -284,7 +296,7 @@ func StorageDiff(out io.Writer, addressA, addressB common.Address) HeadFn {
// Deletions are prefixed with (-) and overwrite it to a zero value. // Deletions are prefixed with (-) and overwrite it to a zero value.
// Comments (#) and empty lines are ignored. // Comments (#) and empty lines are ignored.
func StoragePatch(patch io.Reader, address common.Address) HeadFn { func StoragePatch(patch io.Reader, address common.Address) HeadFn {
return func(headState *state.StateDB) error { return func(head *types.Header, headState *state.StateDB) error {
s := bufio.NewScanner(patch) s := bufio.NewScanner(patch)
i := 0 i := 0
for s.Scan() { for s.Scan() {
...@@ -312,7 +324,7 @@ func StoragePatch(patch io.Reader, address common.Address) HeadFn { ...@@ -312,7 +324,7 @@ func StoragePatch(patch io.Reader, address common.Address) HeadFn {
} }
i += 1 i += 1
if i%1000 == 0 { // for every 1000 values, commit to disk if i%1000 == 0 { // for every 1000 values, commit to disk
if _, err := headState.Commit(true); err != nil { if _, err := headState.Commit(head.Number.Uint64(), true); err != nil {
return fmt.Errorf("failed to commit state to disk after patching %d entries: %w", i, err) return fmt.Errorf("failed to commit state to disk after patching %d entries: %w", i, err)
} }
} }
...@@ -329,7 +341,7 @@ type OvmOwnersConfig struct { ...@@ -329,7 +341,7 @@ type OvmOwnersConfig struct {
} }
func OvmOwners(conf *OvmOwnersConfig) HeadFn { func OvmOwners(conf *OvmOwnersConfig) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
var addressManager common.Address // Lib_AddressManager var addressManager common.Address // Lib_AddressManager
var l1SBProxy common.Address // Proxy__OVM_L1StandardBridge var l1SBProxy common.Address // Proxy__OVM_L1StandardBridge
var l1XDMProxy common.Address // Proxy__OVM_L1CrossDomainMessenger var l1XDMProxy common.Address // Proxy__OVM_L1CrossDomainMessenger
...@@ -374,21 +386,21 @@ func OvmOwners(conf *OvmOwnersConfig) HeadFn { ...@@ -374,21 +386,21 @@ func OvmOwners(conf *OvmOwnersConfig) HeadFn {
} }
func SetBalance(addr common.Address, amount *big.Int) HeadFn { func SetBalance(addr common.Address, amount *big.Int) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
headState.SetBalance(addr, amount) headState.SetBalance(addr, amount)
return nil return nil
} }
} }
func SetCode(addr common.Address, code hexutil.Bytes) HeadFn { func SetCode(addr common.Address, code hexutil.Bytes) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
headState.SetCode(addr, code) headState.SetCode(addr, code)
return nil return nil
} }
} }
func SetNonce(addr common.Address, nonce uint64) HeadFn { func SetNonce(addr common.Address, nonce uint64) HeadFn {
return func(headState *state.StateDB) error { return func(_ *types.Header, headState *state.StateDB) error {
headState.SetNonce(addr, nonce) headState.SetNonce(addr, nonce)
return nil return nil
} }
......
...@@ -296,7 +296,7 @@ func Copy(ctx context.Context, copyFrom client.RPC, copyTo client.RPC) error { ...@@ -296,7 +296,7 @@ func Copy(ctx context.Context, copyFrom client.RPC, copyTo client.RPC) error {
if err != nil { if err != nil {
return err return err
} }
payloadEnv := engine.BlockToExecutableData(copyHead, nil) payloadEnv := engine.BlockToExecutableData(copyHead, nil, nil, nil, nil)
if err := updateForkchoice(ctx, copyTo, copyHead.ParentHash(), copySafe.Hash(), copyFinalized.Hash()); err != nil { if err := updateForkchoice(ctx, copyTo, copyHead.ParentHash(), copySafe.Hash(), copyFinalized.Hash()); err != nil {
return err return err
} }
......
...@@ -14,6 +14,7 @@ MIN_VERSIONS = { ...@@ -14,6 +14,7 @@ MIN_VERSIONS = {
'indexer': '0.5.0', 'indexer': '0.5.0',
'op-node': '0.10.14', 'op-node': '0.10.14',
'op-batcher': '0.10.14', 'op-batcher': '0.10.14',
'op-challenger': '0.0.4',
'op-proposer': '0.10.14', 'op-proposer': '0.10.14',
'op-ufm': '0.1.0', 'op-ufm': '0.1.0',
'proxyd': '3.16.0' 'proxyd': '3.16.0'
......
...@@ -103,10 +103,10 @@ FaultDisputeGame_ResolvesCorrectly_IncorrectRoot4:test_resolvesCorrectly_succeed ...@@ -103,10 +103,10 @@ FaultDisputeGame_ResolvesCorrectly_IncorrectRoot4:test_resolvesCorrectly_succeed
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot5:test_resolvesCorrectly_succeeds() (gas: 656332) FaultDisputeGame_ResolvesCorrectly_IncorrectRoot5:test_resolvesCorrectly_succeeds() (gas: 656332)
FaultDisputeGame_Test:test_addLocalData_static_succeeds() (gas: 640567) FaultDisputeGame_Test:test_addLocalData_static_succeeds() (gas: 640567)
FaultDisputeGame_Test:test_createdAt_succeeds() (gas: 10342) FaultDisputeGame_Test:test_createdAt_succeeds() (gas: 10342)
FaultDisputeGame_Test:test_extraData_succeeds() (gas: 32355) FaultDisputeGame_Test:test_extraData_succeeds() (gas: 32328)
FaultDisputeGame_Test:test_gameData_succeeds() (gas: 32782) FaultDisputeGame_Test:test_gameData_succeeds() (gas: 32755)
FaultDisputeGame_Test:test_gameType_succeeds() (gas: 8265) FaultDisputeGame_Test:test_gameType_succeeds() (gas: 8265)
FaultDisputeGame_Test:test_initialize_correctData_succeeds() (gas: 57739) FaultDisputeGame_Test:test_initialize_correctData_succeeds() (gas: 57712)
FaultDisputeGame_Test:test_initialize_firstOutput_reverts() (gas: 210563) FaultDisputeGame_Test:test_initialize_firstOutput_reverts() (gas: 210563)
FaultDisputeGame_Test:test_initialize_l1HeadTooOld_reverts() (gas: 228368) FaultDisputeGame_Test:test_initialize_l1HeadTooOld_reverts() (gas: 228368)
FaultDisputeGame_Test:test_move_clockCorrectness_succeeds() (gas: 594268) FaultDisputeGame_Test:test_move_clockCorrectness_succeeds() (gas: 594268)
......
...@@ -30,6 +30,7 @@ fs_permissions = [ ...@@ -30,6 +30,7 @@ fs_permissions = [
{ access='read-write', path='./.resource-metering.csv' }, { access='read-write', path='./.resource-metering.csv' },
{ access='read-write', path='./deployments/' }, { access='read-write', path='./deployments/' },
{ access='read', path='./deploy-config/' }, { access='read', path='./deploy-config/' },
{ access='read', path='./periphery-deploy-config/' },
{ access='read', path='./broadcast/' }, { access='read', path='./broadcast/' },
{ access='read', path = './forge-artifacts/' }, { access='read', path = './forge-artifacts/' },
{ access='write', path='./semver-lock.json' }, { access='write', path='./semver-lock.json' },
......
{
"faucetAdmin": "0xf2C22a95bBA6F35545269183D8d1751a27F047F6"
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { console2 as console } from "forge-std/console2.sol";
import { Deployer } from "./Deployer.sol";
import { PeripheryDeployConfig } from "./PeripheryDeployConfig.s.sol";
import { ProxyAdmin } from "src/universal/ProxyAdmin.sol";
import { Proxy } from "src/universal/Proxy.sol";
import { Faucet } from "src/periphery/faucet/Faucet.sol";
/// @title DeployPeriphery
/// @notice Script used to deploy periphery contracts.
contract DeployPeriphery is Deployer {
PeripheryDeployConfig cfg;
/// @notice The name of the script, used to ensure the right deploy artifacts
/// are used.
function name() public pure override returns (string memory) {
return "DeployPeriphery";
}
function setUp() public override {
super.setUp();
string memory path = string.concat(vm.projectRoot(), "/periphery-deploy-config/", deploymentContext, ".json");
cfg = new PeripheryDeployConfig(path);
console.log("Deploying from %s", deployScript);
console.log("Deployment context: %s", deploymentContext);
}
/// @notice Deploy all of the periphery contracts
function run() public {
console.log("Deploying all periphery contracts");
deployProxies();
deployImplementations();
initializeFaucet();
}
/// @notice Deploy all of the proxies
function deployProxies() public {
deployProxyAdmin();
deployFaucetProxy();
}
/// @notice Deploy all of the implementations
function deployImplementations() public {
deployFaucet();
}
/// @notice Modifier that wraps a function in broadcasting.
modifier broadcast() {
vm.startBroadcast();
_;
vm.stopBroadcast();
}
/// @notice Deploy the ProxyAdmin
function deployProxyAdmin() public broadcast returns (address addr_) {
bytes32 salt = keccak256(bytes("ProxyAdmin"));
bytes32 initCodeHash = keccak256(abi.encodePacked(type(ProxyAdmin).creationCode, abi.encode(msg.sender)));
address preComputedAddress = computeCreate2Address(salt, initCodeHash);
if (preComputedAddress.code.length > 0) {
console.log("ProxyAdmin already deployed at %s", preComputedAddress);
save("ProxyAdmin", preComputedAddress);
addr_ = preComputedAddress;
} else {
ProxyAdmin admin = new ProxyAdmin{ salt: salt }({
_owner: msg.sender
});
require(admin.owner() == msg.sender);
save("ProxyAdmin", address(admin));
console.log("ProxyAdmin deployed at %s", address(admin));
addr_ = address(admin);
}
}
/// @notice Deploy the FaucetProxy
function deployFaucetProxy() public broadcast returns (address addr_) {
bytes32 salt = keccak256(bytes("FaucetProxy"));
address proxyAdmin = mustGetAddress("ProxyAdmin");
bytes32 initCodeHash = keccak256(abi.encodePacked(type(Proxy).creationCode, abi.encode(proxyAdmin)));
address preComputedAddress = computeCreate2Address(salt, initCodeHash);
if (preComputedAddress.code.length > 0) {
console.log("FaucetProxy already deployed at %s", preComputedAddress);
save("FaucetProxy", preComputedAddress);
addr_ = preComputedAddress;
} else {
Proxy proxy = new Proxy{ salt: salt }({
_admin: proxyAdmin
});
address admin = address(uint160(uint256(vm.load(address(proxy), OWNER_KEY))));
require(admin == proxyAdmin);
save("FaucetProxy", address(proxy));
console.log("FaucetProxy deployed at %s", address(proxy));
addr_ = address(proxy);
}
}
/// @notice Deploy the faucet contract.
function deployFaucet() public broadcast returns (address addr_) {
bytes32 salt = keccak256(bytes("Faucet"));
bytes32 initCodeHash = keccak256(abi.encodePacked(type(Faucet).creationCode, abi.encode(cfg.faucetAdmin())));
address preComputedAddress = computeCreate2Address(salt, initCodeHash);
if (preComputedAddress.code.length > 0) {
console.log("Faucet already deployed at %s", preComputedAddress);
save("Faucet", preComputedAddress);
addr_ = preComputedAddress;
} else {
Faucet faucet = new Faucet{ salt: salt }(cfg.faucetAdmin());
require(faucet.ADMIN() == cfg.faucetAdmin());
save("Faucet", address(faucet));
console.log("Faucet deployed at %s", address(faucet));
addr_ = address(faucet);
}
}
/// @notice Initialize the Faucet
function initializeFaucet() public broadcast {
ProxyAdmin proxyAdmin = ProxyAdmin(mustGetAddress("ProxyAdmin"));
address faucetProxy = mustGetAddress("FaucetProxy");
address faucet = mustGetAddress("Faucet");
address implementationAddress = proxyAdmin.getProxyImplementation(faucetProxy);
if (implementationAddress == faucet) {
console.log("Faucet proxy implementation already set");
} else {
proxyAdmin.upgrade({ _proxy: payable(faucetProxy), _implementation: faucet });
}
require(Faucet(payable(faucetProxy)).ADMIN() == Faucet(payable(faucet)).ADMIN());
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { Script } from "forge-std/Script.sol";
import { console2 as console } from "forge-std/console2.sol";
import { stdJson } from "forge-std/StdJson.sol";
/// @title PeripheryDeployConfig
/// @notice Represents the configuration required to deploy the periphery contracts. It is expected
/// to read the file from JSON. A future improvement would be to have fallback
/// values if they are not defined in the JSON themselves.
contract PeripheryDeployConfig is Script {
string internal _json;
address public faucetAdmin;
constructor(string memory _path) {
console.log("PeripheryDeployConfig: reading file %s", _path);
try vm.readFile(_path) returns (string memory data) {
_json = data;
} catch {
console.log("Warning: unable to read config. Do not deploy unless you are not using config.");
return;
}
faucetAdmin = stdJson.readAddress(_json, "$.faucetAdmin");
}
}
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
pragma solidity 0.8.15; pragma solidity 0.8.15;
import { Script } from "forge-std/Script.sol"; import { Script } from "forge-std/Script.sol";
import { stdJson } from "forge-std/StdJson.sol";
import { console2 as console } from "forge-std/console2.sol"; import { console2 as console } from "forge-std/console2.sol";
contract SemverLock is Script { contract SemverLock is Script {
...@@ -34,14 +35,23 @@ contract SemverLock is Script { ...@@ -34,14 +35,23 @@ contract SemverLock is Script {
commands[2] = string.concat("echo \"", _files[i], "\"| sed -E \'s|src/.*/(.+)\\.sol|\\1|\'"); commands[2] = string.concat("echo \"", _files[i], "\"| sed -E \'s|src/.*/(.+)\\.sol|\\1|\'");
string memory contractName = string(vm.ffi(commands)); string memory contractName = string(vm.ffi(commands));
commands[0] = "bash";
commands[1] = "-c";
commands[2] = "forge config --json | jq -r .out"; commands[2] = "forge config --json | jq -r .out";
string memory artifactsDir = string(vm.ffi(commands)); string memory artifactsDir = string(vm.ffi(commands));
// Handle the case where there are multiple artifacts for a contract. This happens
// when the same contract is compiled with multiple compiler versions.
string memory contractArtifactDir = string.concat(artifactsDir, "/", contractName, ".sol");
commands[2] = string.concat(
"ls -1 --color=never ", contractArtifactDir, " | jq -R -s -c 'split(\"\n\") | map(select(length > 0))'"
);
string memory artifactFiles = string(vm.ffi(commands));
string[] memory files = stdJson.readStringArray(artifactFiles, "");
require(files.length > 0, string.concat("No artifacts found for ", contractName));
string memory fileName = files[0];
// Parse the artifact to get the contract's initcode hash. // Parse the artifact to get the contract's initcode hash.
bytes memory initCode = bytes memory initCode = vm.getCode(string.concat(artifactsDir, "/", contractName, ".sol/", fileName));
vm.getCode(string.concat(artifactsDir, "/", contractName, ".sol/", contractName, ".json"));
// Serialize the source hash in JSON. // Serialize the source hash in JSON.
string memory j = vm.serializeBytes32(out, _files[i], keccak256(abi.encodePacked(fileContents, initCode))); string memory j = vm.serializeBytes32(out, _files[i], keccak256(abi.encodePacked(fileContents, initCode)));
......
...@@ -300,7 +300,7 @@ func main() { ...@@ -300,7 +300,7 @@ func main() {
// Get the proof // Get the proof
var proof proofList var proof proofList
checkErr(state.Prove(predeploys.L2ToL1MessagePasserAddr.Bytes(), 0, &proof), "Error getting proof") checkErr(state.Prove(predeploys.L2ToL1MessagePasserAddr.Bytes(), &proof), "Error getting proof")
// Get the output root // Get the output root
outputRoot, err := hashOutputRootProof(common.Hash{}, world.Hash(), state.Hash(), common.Hash{}) outputRoot, err := hashOutputRootProof(common.Hash{}, world.Hash(), state.Hash(), common.Hash{})
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
"src/L2/L2StandardBridge.sol": "0xfe01bcb1ddc947b9b8a7093d0971854b9fa8d49da5bd933a3dd106167907f882", "src/L2/L2StandardBridge.sol": "0xfe01bcb1ddc947b9b8a7093d0971854b9fa8d49da5bd933a3dd106167907f882",
"src/L2/L2ToL1MessagePasser.sol": "0xafc710b4d320ef450586d96a61cbd58cac814cb3b0c4fdc280eace3efdcdf321", "src/L2/L2ToL1MessagePasser.sol": "0xafc710b4d320ef450586d96a61cbd58cac814cb3b0c4fdc280eace3efdcdf321",
"src/L2/SequencerFeeVault.sol": "0xc2f733c1128d06ad60bf1e1d98c8f684a4825b11875ccdf2376ede33f5aad4e6", "src/L2/SequencerFeeVault.sol": "0xc2f733c1128d06ad60bf1e1d98c8f684a4825b11875ccdf2376ede33f5aad4e6",
"src/dispute/FaultDisputeGame.sol": "0x76e7c16431faa32e2074e6abdfe3e86f5ec90b4ac8a6b662edba8c3ce791ad80", "src/dispute/DisputeGameFactory.sol": "0xfdfa141408d7f8de7e230ff4bef088e30d0e4d569ca743d60d292abdd21ff270",
"src/dispute/FaultDisputeGame.sol": "0xfdf4be4d6ed4bcbf6492c43fdbfd04d0c62ebee11b8fe9ee2e7757bde8f7383d",
"src/legacy/DeployerWhitelist.sol": "0xf2129ec3da75307ba8e21bc943c332bb04704642e6e263149b5c8ee92dbcb7a8", "src/legacy/DeployerWhitelist.sol": "0xf2129ec3da75307ba8e21bc943c332bb04704642e6e263149b5c8ee92dbcb7a8",
"src/legacy/L1BlockNumber.sol": "0x30aae1fc85103476af0226b6e98c71c01feebbdc35d93401390b1ad438a37be6", "src/legacy/L1BlockNumber.sol": "0x30aae1fc85103476af0226b6e98c71c01feebbdc35d93401390b1ad438a37be6",
"src/legacy/LegacyMessagePasser.sol": "0x5c08b0a663cc49d30e4e38540f6aefab19ef287c3ecd31c8d8c3decd5f5bd497", "src/legacy/LegacyMessagePasser.sol": "0x5c08b0a663cc49d30e4e38540f6aefab19ef287c3ecd31c8d8c3decd5f5bd497",
......
...@@ -3,10 +3,10 @@ pragma solidity ^0.8.15; ...@@ -3,10 +3,10 @@ pragma solidity ^0.8.15;
import { ClonesWithImmutableArgs } from "@cwia/ClonesWithImmutableArgs.sol"; import { ClonesWithImmutableArgs } from "@cwia/ClonesWithImmutableArgs.sol";
import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import { Semver } from "src/universal/Semver.sol"; import { ISemver } from "src/universal/ISemver.sol";
import { IDisputeGame } from "./interfaces/IDisputeGame.sol"; import { IDisputeGame } from "src/dispute/interfaces/IDisputeGame.sol";
import { IDisputeGameFactory } from "./interfaces/IDisputeGameFactory.sol"; import { IDisputeGameFactory } from "src/dispute/interfaces/IDisputeGameFactory.sol";
import { LibGameId } from "src/dispute/lib/LibGameId.sol"; import { LibGameId } from "src/dispute/lib/LibGameId.sol";
...@@ -19,7 +19,7 @@ import "src/libraries/DisputeErrors.sol"; ...@@ -19,7 +19,7 @@ import "src/libraries/DisputeErrors.sol";
/// time of the dispute game is packed tightly into the storage slot with the address of /// time of the dispute game is packed tightly into the storage slot with the address of
/// the dispute game. This is to make offchain discoverability of playable dispute games /// the dispute game. This is to make offchain discoverability of playable dispute games
/// easier. /// easier.
contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver { contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, ISemver {
/// @dev Allows for the creation of clone proxies with immutable arguments. /// @dev Allows for the creation of clone proxies with immutable arguments.
using ClonesWithImmutableArgs for address; using ClonesWithImmutableArgs for address;
...@@ -36,8 +36,12 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver { ...@@ -36,8 +36,12 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, Semver {
/// track dispute games /// track dispute games
GameId[] internal _disputeGameList; GameId[] internal _disputeGameList;
/// @notice Semantic version.
/// @custom:semver 0.0.6
string public constant version = "0.0.6";
/// @notice constructs a new DisputeGameFactory contract. /// @notice constructs a new DisputeGameFactory contract.
constructor() OwnableUpgradeable() Semver(0, 0, 5) { constructor() OwnableUpgradeable() {
initialize(address(0)); initialize(address(0));
} }
......
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
pragma solidity ^0.8.15; pragma solidity ^0.8.15;
import { IDisputeGame } from "./interfaces/IDisputeGame.sol"; import { IDisputeGame } from "src/dispute/interfaces/IDisputeGame.sol";
import { IFaultDisputeGame } from "./interfaces/IFaultDisputeGame.sol"; import { IFaultDisputeGame } from "src/dispute/interfaces/IFaultDisputeGame.sol";
import { IInitializable } from "./interfaces/IInitializable.sol"; import { IInitializable } from "src/dispute/interfaces/IInitializable.sol";
import { IBondManager } from "./interfaces/IBondManager.sol"; import { IBondManager } from "src/dispute/interfaces/IBondManager.sol";
import { IBigStepper, IPreimageOracle } from "./interfaces/IBigStepper.sol"; import { IBigStepper, IPreimageOracle } from "src/dispute/interfaces/IBigStepper.sol";
import { L2OutputOracle } from "src/L1/L2OutputOracle.sol"; import { L2OutputOracle } from "src/L1/L2OutputOracle.sol";
import { BlockOracle } from "./BlockOracle.sol"; import { BlockOracle } from "src/dispute/BlockOracle.sol";
import { Clone } from "src/libraries/Clone.sol"; import { Clone } from "src/libraries/Clone.sol";
import { Types } from "src/libraries/Types.sol"; import { Types } from "src/libraries/Types.sol";
import { Semver } from "src/universal/Semver.sol"; import { ISemver } from "src/universal/ISemver.sol";
import { LibHashing } from "./lib/LibHashing.sol"; import { LibHashing } from "src/dispute/lib/LibHashing.sol";
import { LibPosition } from "./lib/LibPosition.sol"; import { LibPosition } from "src/dispute/lib/LibPosition.sol";
import { LibClock } from "./lib/LibClock.sol"; import { LibClock } from "src/dispute/lib/LibClock.sol";
import "src/libraries/DisputeTypes.sol"; import "src/libraries/DisputeTypes.sol";
import "src/libraries/DisputeErrors.sol"; import "src/libraries/DisputeErrors.sol";
/// @title FaultDisputeGame /// @title FaultDisputeGame
/// @notice An implementation of the `IFaultDisputeGame` interface. /// @notice An implementation of the `IFaultDisputeGame` interface.
contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver { contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
// State Vars // // State Vars //
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
...@@ -81,6 +81,10 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver { ...@@ -81,6 +81,10 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
/// @notice Indicates whether the subgame rooted at the root claim has been resolved. /// @notice Indicates whether the subgame rooted at the root claim has been resolved.
bool internal subgameAtRootResolved; bool internal subgameAtRootResolved;
/// @notice Semantic version.
/// @custom:semver 0.0.10
string public constant version = "0.0.10";
/// @param _gameType The type ID of the game. /// @param _gameType The type ID of the game.
/// @param _absolutePrestate The absolute prestate of the instruction trace. /// @param _absolutePrestate The absolute prestate of the instruction trace.
/// @param _maxGameDepth The maximum depth of bisection. /// @param _maxGameDepth The maximum depth of bisection.
...@@ -91,7 +95,6 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver { ...@@ -91,7 +95,6 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
/// @param _blockOracle The block oracle, used for loading block hashes further back /// @param _blockOracle The block oracle, used for loading block hashes further back
/// than the `BLOCKHASH` opcode allows as well as their estimated /// than the `BLOCKHASH` opcode allows as well as their estimated
/// timestamps. /// timestamps.
/// @custom:semver 0.0.9
constructor( constructor(
GameType _gameType, GameType _gameType,
Claim _absolutePrestate, Claim _absolutePrestate,
...@@ -100,9 +103,7 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver { ...@@ -100,9 +103,7 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
IBigStepper _vm, IBigStepper _vm,
L2OutputOracle _l2oo, L2OutputOracle _l2oo,
BlockOracle _blockOracle BlockOracle _blockOracle
) ) {
Semver(0, 0, 9)
{
GAME_TYPE = _gameType; GAME_TYPE = _gameType;
ABSOLUTE_PRESTATE = _absolutePrestate; ABSOLUTE_PRESTATE = _absolutePrestate;
MAX_GAME_DEPTH = _maxGameDepth; MAX_GAME_DEPTH = _maxGameDepth;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment